home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-2.iso / Files II / Prog / S / SpriteWorld 1.0b4.sit / SpriteWorld / Sources / BlitPixie.c next >
MacBinary  |  1994-04-25  |  28.4 KB  |  [TEXT/KAHL]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: BlitPixie.c

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Mon Apr 25 02:17:32 1994, modified Mon Apr 25 02:17:32 1994, creator Think C, type ASCII, 27927 bytes "BlitPixie.c" , at 0x6d97 772 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[KAHL]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0b 42 6c 69 74 50 69 | 78 69 65 2e 63 00 00 00 |..BlitPi|xie.c...|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 01 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 6d 17 00 | 00 03 04 a9 e1 10 fc a9 |.....m..|........|
|00000060| e1 10 fc 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 dc 1e 00 00 |........|........|
|00000080| 2f 2f 2f 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |///-----|--------|
|00000090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 09 42 6c 69 |--------|-.//.Bli|
|000000e0| 74 50 69 78 69 65 2e 63 | 0d 2f 2f 0d 2f 2f 09 43 |tPixie.c|.//.//.C|
|000000f0| 72 65 61 74 65 64 3a 09 | 54 68 75 72 73 64 61 79 |reated:.|Thursday|
|00000100| 2c 20 53 65 70 74 65 6d | 62 65 72 20 32 34 2c 20 |, Septem|ber 24, |
|00000110| 31 39 39 32 20 61 74 20 | 31 31 3a 34 38 20 50 4d |1992 at |11:48 PM|
|00000120| 0d 2f 2f 09 42 79 3a 09 | 09 54 6f 6e 79 20 4d 79 |.//.By:.|.Tony My|
|00000130| 6c 65 73 0d 2f 2f 0d 2f | 2f 09 49 64 65 61 73 20 |les.//./|/.Ideas |
|00000140| 61 6e 64 20 63 6f 64 65 | 20 73 6e 69 70 70 65 74 |and code| snippet|
|00000150| 73 20 63 6f 6e 74 72 69 | 62 75 74 65 64 20 62 79 |s contri|buted by|
|00000160| 3a 0d 2f 2f 09 09 42 65 | 6e 20 53 68 61 72 70 65 |:.//..Be|n Sharpe|
|00000170| 2c 20 42 72 69 67 68 61 | 6d 20 53 74 65 76 65 6e |, Brigha|m Steven|
|00000180| 73 2c 20 53 65 61 6e 20 | 43 61 6c 6c 61 68 61 6e |s, Sean |Callahan|
|00000190| 2c 20 61 6e 64 20 4a 6f | 65 20 42 72 69 74 74 0d |, and Jo|e Britt.|
|000001a0| 2f 2f 0d 2f 2f 09 43 6f | 70 79 72 69 67 68 74 3a |//.//.Co|pyright:|
|000001b0| 20 a9 20 31 39 39 31 2d | 39 34 20 54 6f 6e 79 20 | . 1991-|94 Tony |
|000001c0| 4d 79 6c 65 73 2c 20 41 | 6c 6c 20 72 69 67 68 74 |Myles, A|ll right|
|000001d0| 73 20 72 65 73 65 72 76 | 65 64 20 77 6f 72 6c 64 |s reserv|ed world|
|000001e0| 77 69 64 65 2e 0d 2f 2f | 2f 2d 2d 2d 2d 2d 2d 2d |wide..//|/-------|
|000001f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000210| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00000240| 0d 0d 23 69 66 6e 64 65 | 66 20 5f 5f 53 57 43 4f |..#ifnde|f __SWCO|
|00000250| 4d 4d 4f 4e 5f 5f 0d 23 | 69 6e 63 6c 75 64 65 20 |MMON__.#|include |
|00000260| 22 53 57 43 6f 6d 6d 6f | 6e 48 65 61 64 65 72 73 |"SWCommo|nHeaders|
|00000270| 2e 68 22 0d 23 65 6e 64 | 69 66 0d 0d 23 69 66 6e |.h".#end|if..#ifn|
|00000280| 64 65 66 20 5f 5f 54 4f | 4f 4c 55 54 49 4c 53 5f |def __TO|OLUTILS_|
|00000290| 5f 0d 23 69 6e 63 6c 75 | 64 65 20 3c 54 6f 6f 6c |_.#inclu|de <Tool|
|000002a0| 55 74 69 6c 73 2e 68 3e | 0d 23 65 6e 64 69 66 0d |Utils.h>|.#endif.|
|000002b0| 0d 23 69 66 6e 64 65 66 | 20 5f 5f 4f 53 55 54 49 |.#ifndef| __OSUTI|
|000002c0| 4c 53 5f 5f 0d 23 69 6e | 63 6c 75 64 65 20 3c 4f |LS__.#in|clude <O|
|000002d0| 53 55 74 69 6c 73 2e 68 | 3e 0d 23 65 6e 64 69 66 |SUtils.h|>.#endif|
|000002e0| 0d 0d 23 69 66 6e 64 65 | 66 20 5f 5f 51 55 49 43 |..#ifnde|f __QUIC|
|000002f0| 4b 44 52 41 57 5f 5f 0d | 23 69 6e 63 6c 75 64 65 |KDRAW__.|#include|
|00000300| 20 3c 51 75 69 63 6b 64 | 72 61 77 2e 68 3e 0d 23 | <Quickd|raw.h>.#|
|00000310| 65 6e 64 69 66 0d 0d 23 | 69 66 6e 64 65 66 20 5f |endif..#|ifndef _|
|00000320| 5f 51 44 4f 46 46 53 43 | 52 45 45 4e 5f 5f 0d 23 |_QDOFFSC|REEN__.#|
|00000330| 69 6e 63 6c 75 64 65 20 | 3c 51 44 4f 66 66 73 63 |include |<QDOffsc|
|00000340| 72 65 65 6e 2e 68 3e 0d | 23 65 6e 64 69 66 0d 0d |reen.h>.|#endif..|
|00000350| 23 69 66 6e 64 65 66 20 | 5f 5f 46 52 41 4d 45 5f |#ifndef |__FRAME_|
|00000360| 5f 0d 23 69 6e 63 6c 75 | 64 65 20 22 46 72 61 6d |_.#inclu|de "Fram|
|00000370| 65 2e 68 22 0d 23 65 6e | 64 69 66 0d 0d 23 69 66 |e.h".#en|dif..#if|
|00000380| 6e 64 65 66 20 5f 5f 42 | 4c 49 54 50 49 58 49 45 |ndef __B|LITPIXIE|
|00000390| 5f 5f 0d 23 69 6e 63 6c | 75 64 65 20 22 42 6c 69 |__.#incl|ude "Bli|
|000003a0| 74 50 69 78 69 65 2e 68 | 22 0d 23 65 6e 64 69 66 |tPixie.h|".#endif|
|000003b0| 0d 0d 23 69 66 6e 64 65 | 66 20 5f 5f 53 50 52 49 |..#ifnde|f __SPRI|
|000003c0| 54 45 43 4f 4d 50 49 4c | 45 52 5f 5f 0d 23 69 6e |TECOMPIL|ER__.#in|
|000003d0| 63 6c 75 64 65 20 22 53 | 70 72 69 74 65 43 6f 6d |clude "S|priteCom|
|000003e0| 70 69 6c 65 72 2e 68 22 | 0d 23 65 6e 64 69 66 0d |piler.h"|.#endif.|
|000003f0| 0d 23 69 6e 63 6c 75 64 | 65 20 22 44 65 62 75 67 |.#includ|e "Debug|
|00000400| 55 74 69 6c 73 2e 68 22 | 0d 0d 0d 2f 2f 2f 2d 2d |Utils.h"|...///--|
|00000410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000420| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000430| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000440| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000450| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000460| 2d 2d 2d 2d 0d 2f 2f 09 | 09 42 6c 69 74 50 69 78 |----.//.|.BlitPix|
|00000470| 69 65 53 70 72 69 74 65 | 44 72 61 77 50 72 6f 63 |ieSprite|DrawProc|
|00000480| 0d 2f 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.///----|--------|
|00000490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 0d 53 57 5f 46 |--------|--..SW_F|
|000004e0| 55 4e 43 20 76 6f 69 64 | 20 42 6c 69 74 50 69 78 |UNC void| BlitPix|
|000004f0| 69 65 53 70 72 69 74 65 | 44 72 61 77 50 72 6f 63 |ieSprite|DrawProc|
|00000500| 28 0d 09 46 72 61 6d 65 | 50 74 72 20 73 72 63 46 |(..Frame|Ptr srcF|
|00000510| 72 61 6d 65 50 2c 0d 09 | 46 72 61 6d 65 50 74 72 |rameP,..|FramePtr|
|00000520| 20 64 73 74 46 72 61 6d | 65 50 2c 0d 09 52 65 63 | dstFram|eP,..Rec|
|00000530| 74 20 2a 73 72 63 52 65 | 63 74 2c 0d 09 52 65 63 |t *srcRe|ct,..Rec|
|00000540| 74 20 2a 64 73 74 52 65 | 63 74 29 0d 7b 0d 09 52 |t *dstRe|ct).{..R|
|00000550| 65 63 74 20 73 72 63 42 | 6c 69 74 52 65 63 74 20 |ect srcB|litRect |
|00000560| 3d 20 2a 73 72 63 52 65 | 63 74 3b 0d 09 52 65 63 |= *srcRe|ct;..Rec|
|00000570| 74 20 64 73 74 42 6c 69 | 74 52 65 63 74 20 3d 20 |t dstBli|tRect = |
|00000580| 2a 64 73 74 52 65 63 74 | 3b 0d 0d 09 09 2f 2f 20 |*dstRect|;....// |
|00000590| 63 6c 69 70 20 6f 66 66 | 20 74 68 65 20 74 6f 70 |clip off| the top|
|000005a0| 20 73 6f 20 77 65 20 64 | 6f 6e 74 20 77 72 69 74 | so we d|ont writ|
|000005b0| 65 20 69 6e 74 6f 20 72 | 61 6e 64 6f 6d 20 6d 65 |e into r|andom me|
|000005c0| 6d 6f 72 79 0d 09 69 66 | 20 28 64 73 74 42 6c 69 |mory..if| (dstBli|
|000005d0| 74 52 65 63 74 2e 74 6f | 70 20 3c 20 64 73 74 46 |tRect.to|p < dstF|
|000005e0| 72 61 6d 65 50 2d 3e 66 | 72 61 6d 65 52 65 63 74 |rameP->f|rameRect|
|000005f0| 2e 74 6f 70 29 0d 09 7b | 0d 09 09 73 72 63 42 6c |.top)..{|...srcBl|
|00000600| 69 74 52 65 63 74 2e 74 | 6f 70 20 2b 3d 20 64 73 |itRect.t|op += ds|
|00000610| 74 46 72 61 6d 65 50 2d | 3e 66 72 61 6d 65 52 65 |tFrameP-|>frameRe|
|00000620| 63 74 2e 74 6f 70 20 2d | 20 64 73 74 42 6c 69 74 |ct.top -| dstBlit|
|00000630| 52 65 63 74 2e 74 6f 70 | 3b 0d 09 09 64 73 74 42 |Rect.top|;...dstB|
|00000640| 6c 69 74 52 65 63 74 2e | 74 6f 70 20 3d 20 64 73 |litRect.|top = ds|
|00000650| 74 46 72 61 6d 65 50 2d | 3e 66 72 61 6d 65 52 65 |tFrameP-|>frameRe|
|00000660| 63 74 2e 74 6f 70 3b 0d | 09 09 69 66 20 28 64 73 |ct.top;.|..if (ds|
|00000670| 74 42 6c 69 74 52 65 63 | 74 2e 74 6f 70 20 3e 3d |tBlitRec|t.top >=|
|00000680| 20 64 73 74 42 6c 69 74 | 52 65 63 74 2e 62 6f 74 | dstBlit|Rect.bot|
|00000690| 74 6f 6d 29 20 72 65 74 | 75 72 6e 3b 0d 09 7d 0d |tom) ret|urn;..}.|
|000006a0| 09 09 2f 2f 20 63 6c 69 | 70 20 6f 66 66 20 74 68 |..// cli|p off th|
|000006b0| 65 20 62 6f 74 74 6f 6d | 0d 09 65 6c 73 65 20 69 |e bottom|..else i|
|000006c0| 66 20 28 64 73 74 42 6c | 69 74 52 65 63 74 2e 62 |f (dstBl|itRect.b|
|000006d0| 6f 74 74 6f 6d 20 3e 20 | 64 73 74 46 72 61 6d 65 |ottom > |dstFrame|
|000006e0| 50 2d 3e 66 72 61 6d 65 | 52 65 63 74 2e 62 6f 74 |P->frame|Rect.bot|
|000006f0| 74 6f 6d 29 0d 09 7b 0d | 09 09 64 73 74 42 6c 69 |tom)..{.|..dstBli|
|00000700| 74 52 65 63 74 2e 62 6f | 74 74 6f 6d 20 3d 20 64 |tRect.bo|ttom = d|
|00000710| 73 74 46 72 61 6d 65 50 | 2d 3e 66 72 61 6d 65 52 |stFrameP|->frameR|
|00000720| 65 63 74 2e 62 6f 74 74 | 6f 6d 3b 0d 09 09 69 66 |ect.bott|om;...if|
|00000730| 20 28 64 73 74 42 6c 69 | 74 52 65 63 74 2e 62 6f | (dstBli|tRect.bo|
|00000740| 74 74 6f 6d 20 3c 3d 20 | 64 73 74 42 6c 69 74 52 |ttom <= |dstBlitR|
|00000750| 65 63 74 2e 74 6f 70 29 | 20 72 65 74 75 72 6e 3b |ect.top)| return;|
|00000760| 0d 09 7d 0d 0d 09 09 2f | 2f 20 63 6c 69 70 20 6f |..}..../|/ clip o|
|00000770| 66 66 20 74 68 65 20 6c | 65 66 74 0d 09 69 66 20 |ff the l|eft..if |
|00000780| 28 64 73 74 42 6c 69 74 | 52 65 63 74 2e 6c 65 66 |(dstBlit|Rect.lef|
|00000790| 74 20 3c 20 64 73 74 46 | 72 61 6d 65 50 2d 3e 66 |t < dstF|rameP->f|
|000007a0| 72 61 6d 65 52 65 63 74 | 2e 6c 65 66 74 29 0d 09 |rameRect|.left)..|
|000007b0| 7b 0d 09 09 73 72 63 42 | 6c 69 74 52 65 63 74 2e |{...srcB|litRect.|
|000007c0| 6c 65 66 74 20 2b 3d 20 | 64 73 74 46 72 61 6d 65 |left += |dstFrame|
|000007d0| 50 2d 3e 66 72 61 6d 65 | 52 65 63 74 2e 6c 65 66 |P->frame|Rect.lef|
|000007e0| 74 20 2d 20 64 73 74 42 | 6c 69 74 52 65 63 74 2e |t - dstB|litRect.|
|000007f0| 6c 65 66 74 3b 0d 09 09 | 64 73 74 42 6c 69 74 52 |left;...|dstBlitR|
|00000800| 65 63 74 2e 6c 65 66 74 | 20 3d 20 64 73 74 46 72 |ect.left| = dstFr|
|00000810| 61 6d 65 50 2d 3e 66 72 | 61 6d 65 52 65 63 74 2e |ameP->fr|ameRect.|
|00000820| 6c 65 66 74 3b 0d 09 09 | 69 66 20 28 64 73 74 42 |left;...|if (dstB|
|00000830| 6c 69 74 52 65 63 74 2e | 6c 65 66 74 20 3e 3d 20 |litRect.|left >= |
|00000840| 64 73 74 42 6c 69 74 52 | 65 63 74 2e 72 69 67 68 |dstBlitR|ect.righ|
|00000850| 74 29 20 72 65 74 75 72 | 6e 3b 0d 09 7d 0d 09 09 |t) retur|n;..}...|
|00000860| 2f 2f 20 63 6c 69 70 20 | 6f 66 66 20 74 68 65 20 |// clip |off the |
|00000870| 72 69 67 68 74 0d 09 65 | 6c 73 65 20 69 66 20 28 |right..e|lse if (|
|00000880| 64 73 74 42 6c 69 74 52 | 65 63 74 2e 72 69 67 68 |dstBlitR|ect.righ|
|00000890| 74 20 3e 20 64 73 74 46 | 72 61 6d 65 50 2d 3e 66 |t > dstF|rameP->f|
|000008a0| 72 61 6d 65 52 65 63 74 | 2e 72 69 67 68 74 29 0d |rameRect|.right).|
|000008b0| 09 7b 0d 09 09 64 73 74 | 42 6c 69 74 52 65 63 74 |.{...dst|BlitRect|
|000008c0| 2e 72 69 67 68 74 20 3d | 20 64 73 74 46 72 61 6d |.right =| dstFram|
|000008d0| 65 50 2d 3e 66 72 61 6d | 65 52 65 63 74 2e 72 69 |eP->fram|eRect.ri|
|000008e0| 67 68 74 3b 0d 09 09 69 | 66 20 28 64 73 74 42 6c |ght;...i|f (dstBl|
|000008f0| 69 74 52 65 63 74 2e 72 | 69 67 68 74 20 3c 3d 20 |itRect.r|ight <= |
|00000900| 64 73 74 42 6c 69 74 52 | 65 63 74 2e 6c 65 66 74 |dstBlitR|ect.left|
|00000910| 29 20 72 65 74 75 72 6e | 3b 0d 09 7d 0d 0d 09 7b |) return|;..}...{|
|00000920| 0d 09 09 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |...unsig|ned long|
|00000930| 20 6e 75 6d 42 79 74 65 | 73 50 65 72 52 6f 77 3b | numByte|sPerRow;|
|00000940| 0d 0d 09 09 09 2f 2f 20 | 63 61 6c 63 75 6c 61 74 |.....// |calculat|
|00000950| 65 20 74 68 65 20 6e 75 | 6d 62 65 72 20 6f 66 20 |e the nu|mber of |
|00000960| 62 79 74 65 73 20 69 6e | 20 61 20 72 6f 77 0d 09 |bytes in| a row..|
|00000970| 09 6e 75 6d 42 79 74 65 | 73 50 65 72 52 6f 77 20 |.numByte|sPerRow |
|00000980| 3d 20 28 64 73 74 42 6c | 69 74 52 65 63 74 2e 72 |= (dstBl|itRect.r|
|00000990| 69 67 68 74 20 2d 20 64 | 73 74 42 6c 69 74 52 65 |ight - d|stBlitRe|
|000009a0| 63 74 2e 6c 65 66 74 29 | 3b 0d 0d 09 09 42 6c 69 |ct.left)|;....Bli|
|000009b0| 74 50 69 78 69 65 28 0d | 09 09 09 09 2f 2f 20 63 |tPixie(.|....// c|
|000009c0| 61 6c 63 75 6c 61 74 65 | 20 74 68 65 20 61 64 64 |alculate| the add|
|000009d0| 72 65 73 73 20 6f 66 20 | 74 68 65 20 66 69 72 73 |ress of |the firs|
|000009e0| 74 20 62 79 74 65 20 6f | 66 20 74 68 65 20 73 6f |t byte o|f the so|
|000009f0| 75 72 63 65 0d 09 09 09 | 28 50 69 78 65 6c 43 68 |urce....|(PixelCh|
|00000a00| 75 6e 6b 50 74 72 29 28 | 73 72 63 46 72 61 6d 65 |unkPtr)(|srcFrame|
|00000a10| 50 2d 3e 66 72 61 6d 65 | 42 61 73 65 41 64 64 72 |P->frame|BaseAddr|
|00000a20| 20 2b 20 0d 09 09 09 09 | 28 73 72 63 46 72 61 6d | + .....|(srcFram|
|00000a30| 65 50 2d 3e 73 63 61 6e | 4c 69 6e 65 50 74 72 41 |eP->scan|LinePtrA|
|00000a40| 72 72 61 79 5b 73 72 63 | 42 6c 69 74 52 65 63 74 |rray[src|BlitRect|
|00000a50| 2e 74 6f 70 5d 29 20 2b | 20 73 72 63 42 6c 69 74 |.top]) +| srcBlit|
|00000a60| 52 65 63 74 2e 6c 65 66 | 74 29 2c 0d 0d 09 09 09 |Rect.lef|t),.....|
|00000a70| 09 2f 2f 20 63 61 6c 63 | 75 6c 61 74 65 20 74 68 |.// calc|ulate th|
|00000a80| 65 20 61 64 64 72 65 73 | 73 20 6f 66 20 74 68 65 |e addres|s of the|
|00000a90| 20 66 69 72 73 74 20 62 | 79 74 65 20 6f 66 20 74 | first b|yte of t|
|00000aa0| 68 65 20 64 65 73 74 69 | 6e 61 74 69 6f 6e 0d 09 |he desti|nation..|
|00000ab0| 09 09 28 50 69 78 65 6c | 43 68 75 6e 6b 50 74 72 |..(Pixel|ChunkPtr|
|00000ac0| 29 28 64 73 74 46 72 61 | 6d 65 50 2d 3e 66 72 61 |)(dstFra|meP->fra|
|00000ad0| 6d 65 42 61 73 65 41 64 | 64 72 20 2b 20 0d 09 09 |meBaseAd|dr + ...|
|00000ae0| 09 09 28 64 73 74 46 72 | 61 6d 65 50 2d 3e 73 63 |..(dstFr|ameP->sc|
|00000af0| 61 6e 4c 69 6e 65 50 74 | 72 41 72 72 61 79 5b 64 |anLinePt|rArray[d|
|00000b00| 73 74 42 6c 69 74 52 65 | 63 74 2e 74 6f 70 5d 29 |stBlitRe|ct.top])|
|00000b10| 20 2b 20 64 73 74 42 6c | 69 74 52 65 63 74 2e 6c | + dstBl|itRect.l|
|00000b20| 65 66 74 29 2c 0d 0d 09 | 09 09 09 2f 2f 20 63 61 |eft),...|...// ca|
|00000b30| 6c 63 75 6c 61 74 65 20 | 74 68 65 20 6e 75 6d 62 |lculate |the numb|
|00000b40| 65 72 20 6f 66 20 72 6f | 77 73 20 74 6f 20 62 6c |er of ro|ws to bl|
|00000b50| 69 74 0d 09 09 09 64 73 | 74 42 6c 69 74 52 65 63 |it....ds|tBlitRec|
|00000b60| 74 2e 62 6f 74 74 6f 6d | 20 2d 20 64 73 74 42 6c |t.bottom| - dstBl|
|00000b70| 69 74 52 65 63 74 2e 74 | 6f 70 2c 0d 0d 09 09 09 |itRect.t|op,.....|
|00000b80| 09 2f 2f 20 6e 75 6d 62 | 65 72 20 6f 66 20 62 79 |.// numb|er of by|
|00000b90| 74 65 73 20 69 6e 20 61 | 20 72 6f 77 20 28 64 75 |tes in a| row (du|
|00000ba0| 68 21 29 0d 09 09 09 6e | 75 6d 42 79 74 65 73 50 |h!)....n|umBytesP|
|00000bb0| 65 72 52 6f 77 2c 0d 0d | 09 09 09 09 2f 2f 20 63 |erRow,..|....// c|
|00000bc0| 61 6c 63 75 6c 61 74 65 | 20 6f 66 66 73 65 74 20 |alculate| offset |
|00000bd0| 66 72 6f 6d 20 65 6e 64 | 20 6f 66 20 6f 6e 65 20 |from end| of one |
|00000be0| 72 6f 77 20 74 6f 20 62 | 65 67 69 6e 6e 69 6e 67 |row to b|eginning|
|00000bf0| 20 6f 66 20 6e 65 78 74 | 20 72 6f 77 0d 09 09 09 | of next| row....|
|00000c00| 73 72 63 46 72 61 6d 65 | 50 2d 3e 66 72 61 6d 65 |srcFrame|P->frame|
|00000c10| 52 6f 77 42 79 74 65 73 | 20 2d 20 6e 75 6d 42 79 |RowBytes| - numBy|
|00000c20| 74 65 73 50 65 72 52 6f | 77 2c 0d 09 09 09 64 73 |tesPerRo|w,....ds|
|00000c30| 74 46 72 61 6d 65 50 2d | 3e 66 72 61 6d 65 52 6f |tFrameP-|>frameRo|
|00000c40| 77 42 79 74 65 73 20 2d | 20 6e 75 6d 42 79 74 65 |wBytes -| numByte|
|00000c50| 73 50 65 72 52 6f 77 29 | 3b 0d 09 7d 0d 7d 0d 0d |sPerRow)|;..}.}..|
|00000c60| 0d 2f 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.///----|--------|
|00000c70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ca0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 09 09 42 |--------|--.//..B|
|00000cc0| 6c 69 74 50 69 78 69 65 | 57 6f 72 6c 64 44 72 61 |litPixie|WorldDra|
|00000cd0| 77 50 72 6f 63 0d 2f 2f | 2f 2d 2d 2d 2d 2d 2d 2d |wProc.//|/-------|
|00000ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000d10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00000d30| 0d 53 57 5f 46 55 4e 43 | 20 76 6f 69 64 20 42 6c |.SW_FUNC| void Bl|
|00000d40| 69 74 50 69 78 69 65 57 | 6f 72 6c 64 44 72 61 77 |itPixieW|orldDraw|
|00000d50| 50 72 6f 63 28 0d 09 46 | 72 61 6d 65 50 74 72 20 |Proc(..F|ramePtr |
|00000d60| 73 72 63 46 72 61 6d 65 | 50 2c 0d 09 46 72 61 6d |srcFrame|P,..Fram|
|00000d70| 65 50 74 72 20 64 73 74 | 46 72 61 6d 65 50 2c 0d |ePtr dst|FrameP,.|
|00000d80| 09 52 65 63 74 20 2a 62 | 6c 69 74 52 65 63 74 29 |.Rect *b|litRect)|
|00000d90| 0d 7b 0d 09 52 65 63 74 | 20 64 73 74 42 6c 69 74 |.{..Rect| dstBlit|
|00000da0| 52 65 63 74 20 3d 20 2a | 62 6c 69 74 52 65 63 74 |Rect = *|blitRect|
|00000db0| 3b 0d 09 52 65 63 74 20 | 73 72 63 42 6c 69 74 52 |;..Rect |srcBlitR|
|00000dc0| 65 63 74 20 3d 20 2a 62 | 6c 69 74 52 65 63 74 3b |ect = *b|litRect;|
|00000dd0| 0d 0d 09 09 2f 2f 20 63 | 6c 69 70 20 6f 66 66 20 |....// c|lip off |
|00000de0| 74 68 65 20 74 6f 70 20 | 73 6f 20 77 65 20 64 6f |the top |so we do|
|00000df0| 6e 74 20 77 72 69 74 65 | 20 69 6e 74 6f 20 72 61 |nt write| into ra|
|00000e00| 6e 64 6f 6d 20 6d 65 6d | 6f 72 79 0d 09 69 66 20 |ndom mem|ory..if |
|00000e10| 28 64 73 74 42 6c 69 74 | 52 65 63 74 2e 74 6f 70 |(dstBlit|Rect.top|
|00000e20| 20 3c 20 20 64 73 74 46 | 72 61 6d 65 50 2d 3e 66 | < dstF|rameP->f|
|00000e30| 72 61 6d 65 52 65 63 74 | 2e 74 6f 70 29 0d 09 7b |rameRect|.top)..{|
|00000e40| 0d 09 09 73 72 63 42 6c | 69 74 52 65 63 74 2e 74 |...srcBl|itRect.t|
|00000e50| 6f 70 20 2b 3d 20 64 73 | 74 46 72 61 6d 65 50 2d |op += ds|tFrameP-|
|00000e60| 3e 66 72 61 6d 65 52 65 | 63 74 2e 74 6f 70 20 2d |>frameRe|ct.top -|
|00000e70| 20 64 73 74 42 6c 69 74 | 52 65 63 74 2e 74 6f 70 | dstBlit|Rect.top|
|00000e80| 3b 0d 09 09 64 73 74 42 | 6c 69 74 52 65 63 74 2e |;...dstB|litRect.|
|00000e90| 74 6f 70 20 3d 20 20 64 | 73 74 46 72 61 6d 65 50 |top = d|stFrameP|
|00000ea0| 2d 3e 66 72 61 6d 65 52 | 65 63 74 2e 74 6f 70 3b |->frameR|ect.top;|
|00000eb0| 0d 09 09 69 66 20 28 64 | 73 74 42 6c 69 74 52 65 |...if (d|stBlitRe|
|00000ec0| 63 74 2e 74 6f 70 20 3e | 3d 20 64 73 74 42 6c 69 |ct.top >|= dstBli|
|00000ed0| 74 52 65 63 74 2e 62 6f | 74 74 6f 6d 29 20 72 65 |tRect.bo|ttom) re|
|00000ee0| 74 75 72 6e 3b 09 0d 09 | 7d 0d 09 09 2f 2f 20 63 |turn;...|}...// c|
|00000ef0| 6c 69 70 20 6f 66 66 20 | 74 68 65 20 62 6f 74 74 |lip off |the bott|
|00000f00| 6f 6d 0d 09 65 6c 73 65 | 20 69 66 20 28 64 73 74 |om..else| if (dst|
|00000f10| 42 6c 69 74 52 65 63 74 | 2e 62 6f 74 74 6f 6d 20 |BlitRect|.bottom |
|00000f20| 3e 20 20 64 73 74 46 72 | 61 6d 65 50 2d 3e 66 72 |> dstFr|ameP->fr|
|00000f30| 61 6d 65 52 65 63 74 2e | 62 6f 74 74 6f 6d 29 0d |ameRect.|bottom).|
|00000f40| 09 7b 0d 09 09 64 73 74 | 42 6c 69 74 52 65 63 74 |.{...dst|BlitRect|
|00000f50| 2e 62 6f 74 74 6f 6d 20 | 3d 20 20 64 73 74 46 72 |.bottom |= dstFr|
|00000f60| 61 6d 65 50 2d 3e 66 72 | 61 6d 65 52 65 63 74 2e |ameP->fr|ameRect.|
|00000f70| 62 6f 74 74 6f 6d 3b 0d | 09 09 69 66 20 28 64 73 |bottom;.|..if (ds|
|00000f80| 74 42 6c 69 74 52 65 63 | 74 2e 62 6f 74 74 6f 6d |tBlitRec|t.bottom|
|00000f90| 20 3c 3d 20 64 73 74 42 | 6c 69 74 52 65 63 74 2e | <= dstB|litRect.|
|00000fa0| 74 6f 70 29 20 72 65 74 | 75 72 6e 3b 0d 09 7d 0d |top) ret|urn;..}.|
|00000fb0| 0d 09 09 2f 2f 20 63 6c | 69 70 20 6f 66 66 20 74 |...// cl|ip off t|
|00000fc0| 68 65 20 6c 65 66 74 0d | 09 69 66 20 28 64 73 74 |he left.|.if (dst|
|00000fd0| 42 6c 69 74 52 65 63 74 | 2e 6c 65 66 74 20 3c 20 |BlitRect|.left < |
|00000fe0| 20 64 73 74 46 72 61 6d | 65 50 2d 3e 66 72 61 6d | dstFram|eP->fram|
|00000ff0| 65 52 65 63 74 2e 6c 65 | 66 74 29 0d 09 7b 0d 09 |eRect.le|ft)..{..|
|00001000| 09 73 72 63 42 6c 69 74 | 52 65 63 74 2e 6c 65 66 |.srcBlit|Rect.lef|
|00001010| 74 20 2b 3d 20 64 73 74 | 46 72 61 6d 65 50 2d 3e |t += dst|FrameP->|
|00001020| 66 72 61 6d 65 52 65 63 | 74 2e 6c 65 66 74 20 2d |frameRec|t.left -|
|00001030| 20 64 73 74 42 6c 69 74 | 52 65 63 74 2e 6c 65 66 | dstBlit|Rect.lef|
|00001040| 74 3b 0d 09 09 64 73 74 | 42 6c 69 74 52 65 63 74 |t;...dst|BlitRect|
|00001050| 2e 6c 65 66 74 20 3d 20 | 20 64 73 74 46 72 61 6d |.left = | dstFram|
|00001060| 65 50 2d 3e 66 72 61 6d | 65 52 65 63 74 2e 6c 65 |eP->fram|eRect.le|
|00001070| 66 74 3b 0d 09 09 69 66 | 20 28 64 73 74 42 6c 69 |ft;...if| (dstBli|
|00001080| 74 52 65 63 74 2e 6c 65 | 66 74 20 3e 3d 20 64 73 |tRect.le|ft >= ds|
|00001090| 74 42 6c 69 74 52 65 63 | 74 2e 72 69 67 68 74 29 |tBlitRec|t.right)|
|000010a0| 20 72 65 74 75 72 6e 3b | 0d 09 7d 0d 09 09 2f 2f | return;|..}...//|
|000010b0| 20 63 6c 69 70 20 6f 66 | 66 20 74 68 65 20 72 69 | clip of|f the ri|
|000010c0| 67 68 74 0d 09 65 6c 73 | 65 20 69 66 20 28 64 73 |ght..els|e if (ds|
|000010d0| 74 42 6c 69 74 52 65 63 | 74 2e 72 69 67 68 74 20 |tBlitRec|t.right |
|000010e0| 3e 20 20 64 73 74 46 72 | 61 6d 65 50 2d 3e 66 72 |> dstFr|ameP->fr|
|000010f0| 61 6d 65 52 65 63 74 2e | 72 69 67 68 74 29 0d 09 |ameRect.|right)..|
|00001100| 7b 0d 09 09 64 73 74 42 | 6c 69 74 52 65 63 74 2e |{...dstB|litRect.|
|00001110| 72 69 67 68 74 20 3d 20 | 20 64 73 74 46 72 61 6d |right = | dstFram|
|00001120| 65 50 2d 3e 66 72 61 6d | 65 52 65 63 74 2e 72 69 |eP->fram|eRect.ri|
|00001130| 67 68 74 3b 0d 09 09 69 | 66 20 28 64 73 74 42 6c |ght;...i|f (dstBl|
|00001140| 69 74 52 65 63 74 2e 72 | 69 67 68 74 20 3c 3d 20 |itRect.r|ight <= |
|00001150| 64 73 74 42 6c 69 74 52 | 65 63 74 2e 6c 65 66 74 |dstBlitR|ect.left|
|00001160| 29 20 72 65 74 75 72 6e | 3b 0d 09 7d 0d 0d 09 7b |) return|;..}...{|
|00001170| 0d 09 09 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |...unsig|ned long|
|00001180| 20 6e 75 6d 42 79 74 65 | 73 50 65 72 52 6f 77 3b | numByte|sPerRow;|
|00001190| 0d 0d 09 09 09 2f 2f 20 | 63 61 6c 63 75 6c 61 74 |.....// |calculat|
|000011a0| 65 20 74 68 65 20 6e 75 | 6d 62 65 72 20 6f 66 20 |e the nu|mber of |
|000011b0| 62 79 74 65 73 20 69 6e | 20 61 20 72 6f 77 0d 09 |bytes in| a row..|
|000011c0| 09 6e 75 6d 42 79 74 65 | 73 50 65 72 52 6f 77 20 |.numByte|sPerRow |
|000011d0| 3d 20 28 64 73 74 42 6c | 69 74 52 65 63 74 2e 72 |= (dstBl|itRect.r|
|000011e0| 69 67 68 74 20 2d 20 64 | 73 74 42 6c 69 74 52 65 |ight - d|stBlitRe|
|000011f0| 63 74 2e 6c 65 66 74 29 | 3b 0d 0d 09 09 42 6c 69 |ct.left)|;....Bli|
|00001200| 74 50 69 78 69 65 43 68 | 75 6e 6b 73 28 0d 09 09 |tPixieCh|unks(...|
|00001210| 09 09 2f 2f 20 63 61 6c | 63 75 6c 61 74 65 20 74 |..// cal|culate t|
|00001220| 68 65 20 61 64 64 72 65 | 73 73 20 6f 66 20 74 68 |he addre|ss of th|
|00001230| 65 20 66 69 72 73 74 20 | 62 79 74 65 20 6f 66 20 |e first |byte of |
|00001240| 74 68 65 20 73 6f 75 72 | 63 65 0d 09 09 09 28 50 |the sour|ce....(P|
|00001250| 69 78 65 6c 43 68 75 6e | 6b 50 74 72 29 28 73 72 |ixelChun|kPtr)(sr|
|00001260| 63 46 72 61 6d 65 50 2d | 3e 66 72 61 6d 65 42 61 |cFrameP-|>frameBa|
|00001270| 73 65 41 64 64 72 20 2b | 20 0d 09 09 09 09 28 73 |seAddr +| .....(s|
|00001280| 72 63 46 72 61 6d 65 50 | 2d 3e 73 63 61 6e 4c 69 |rcFrameP|->scanLi|
|00001290| 6e 65 50 74 72 41 72 72 | 61 79 5b 73 72 63 42 6c |nePtrArr|ay[srcBl|
|000012a0| 69 74 52 65 63 74 2e 74 | 6f 70 5d 29 20 2b 20 73 |itRect.t|op]) + s|
|000012b0| 72 63 42 6c 69 74 52 65 | 63 74 2e 6c 65 66 74 29 |rcBlitRe|ct.left)|
|000012c0| 2c 0d 0d 09 09 09 09 2f | 2f 20 63 61 6c 63 75 6c |,....../|/ calcul|
|000012d0| 61 74 65 20 74 68 65 20 | 61 64 64 72 65 73 73 20 |ate the |address |
|000012e0| 6f 66 20 74 68 65 20 66 | 69 72 73 74 20 62 79 74 |of the f|irst byt|
|000012f0| 65 20 6f 66 20 74 68 65 | 20 64 65 73 74 69 6e 61 |e of the| destina|
|00001300| 74 69 6f 6e 0d 09 09 09 | 09 2f 2f 20 63 6f 6d 70 |tion....|.// comp|
|00001310| 65 6e 73 61 74 65 20 66 | 6f 72 20 74 68 65 20 6f |ensate f|or the o|
|00001320| 66 66 73 65 74 20 6f 66 | 20 74 68 65 20 64 65 73 |ffset of| the des|
|00001330| 74 69 6e 61 74 69 6f 6e | 20 70 69 78 6d 61 70 0d |tination| pixmap.|
|00001340| 09 09 09 09 2f 2f 20 73 | 69 6e 63 65 20 77 65 20 |....// s|ince we |
|00001350| 6d 61 79 20 62 65 20 64 | 72 61 77 69 6e 67 20 74 |may be d|rawing t|
|00001360| 6f 20 74 68 65 20 73 63 | 72 65 65 6e 0d 09 09 09 |o the sc|reen....|
|00001370| 28 50 69 78 65 6c 43 68 | 75 6e 6b 50 74 72 29 28 |(PixelCh|unkPtr)(|
|00001380| 64 73 74 46 72 61 6d 65 | 50 2d 3e 66 72 61 6d 65 |dstFrame|P->frame|
|00001390| 42 61 73 65 41 64 64 72 | 20 2b 20 0d 09 09 09 09 |BaseAddr| + .....|
|000013a0| 28 64 73 74 46 72 61 6d | 65 50 2d 3e 73 63 61 6e |(dstFram|eP->scan|
|000013b0| 4c 69 6e 65 50 74 72 41 | 72 72 61 79 5b 28 64 73 |LinePtrA|rray[(ds|
|000013c0| 74 42 6c 69 74 52 65 63 | 74 2e 74 6f 70 20 2b 20 |tBlitRec|t.top + |
|000013d0| 2d 64 73 74 46 72 61 6d | 65 50 2d 3e 66 72 61 6d |-dstFram|eP->fram|
|000013e0| 65 50 69 78 2e 70 69 78 | 4d 61 70 50 2d 3e 62 6f |ePix.pix|MapP->bo|
|000013f0| 75 6e 64 73 2e 74 6f 70 | 29 5d 29 0d 09 09 09 09 |unds.top|)]).....|
|00001400| 20 2b 20 28 64 73 74 42 | 6c 69 74 52 65 63 74 2e | + (dstB|litRect.|
|00001410| 6c 65 66 74 20 2b 20 2d | 64 73 74 46 72 61 6d 65 |left + -|dstFrame|
|00001420| 50 2d 3e 66 72 61 6d 65 | 50 69 78 2e 70 69 78 4d |P->frame|Pix.pixM|
|00001430| 61 70 50 2d 3e 62 6f 75 | 6e 64 73 2e 6c 65 66 74 |apP->bou|nds.left|
|00001440| 29 29 2c 0d 0d 09 09 09 | 09 2f 2f 20 63 61 6c 63 |)),.....|.// calc|
|00001450| 75 6c 61 74 65 20 74 68 | 65 20 6e 75 6d 62 65 72 |ulate th|e number|
|00001460| 20 6f 66 20 72 6f 77 73 | 20 74 6f 20 62 6c 69 74 | of rows| to blit|
|00001470| 0d 09 09 09 64 73 74 42 | 6c 69 74 52 65 63 74 2e |....dstB|litRect.|
|00001480| 62 6f 74 74 6f 6d 20 2d | 20 64 73 74 42 6c 69 74 |bottom -| dstBlit|
|00001490| 52 65 63 74 2e 74 6f 70 | 2c 0d 0d 09 09 09 09 2f |Rect.top|,....../|
|000014a0| 2f 20 6e 75 6d 62 65 72 | 20 6f 66 20 63 68 75 6e |/ number| of chun|
|000014b0| 6b 73 20 70 65 72 20 72 | 6f 77 0d 09 09 09 42 79 |ks per r|ow....By|
|000014c0| 74 65 73 54 6f 43 68 75 | 6e 6b 73 28 6e 75 6d 42 |tesToChu|nks(numB|
|000014d0| 79 74 65 73 50 65 72 52 | 6f 77 29 2c 0d 0d 09 09 |ytesPerR|ow),....|
|000014e0| 09 09 2f 2f 20 63 61 6c | 63 75 6c 61 74 65 20 6f |..// cal|culate o|
|000014f0| 66 66 73 65 74 20 66 72 | 6f 6d 20 65 6e 64 20 6f |ffset fr|om end o|
|00001500| 66 20 6f 6e 65 20 72 6f | 77 20 74 6f 20 62 65 67 |f one ro|w to beg|
|00001510| 69 6e 6e 69 6e 67 20 6f | 66 20 6e 65 78 74 20 72 |inning o|f next r|
|00001520| 6f 77 0d 09 09 09 73 72 | 63 46 72 61 6d 65 50 2d |ow....sr|cFrameP-|
|00001530| 3e 66 72 61 6d 65 52 6f | 77 42 79 74 65 73 20 2d |>frameRo|wBytes -|
|00001540| 20 6e 75 6d 42 79 74 65 | 73 50 65 72 52 6f 77 2c | numByte|sPerRow,|
|00001550| 0d 09 09 09 64 73 74 46 | 72 61 6d 65 50 2d 3e 66 |....dstF|rameP->f|
|00001560| 72 61 6d 65 52 6f 77 42 | 79 74 65 73 20 2d 20 6e |rameRowB|ytes - n|
|00001570| 75 6d 42 79 74 65 73 50 | 65 72 52 6f 77 29 3b 0d |umBytesP|erRow);.|
|00001580| 09 7d 0d 7d 0d 0d 0d 2f | 2f 2f 2d 2d 2d 2d 2d 2d |.}.}.../|//------|
|00001590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000015e0| 0d 2f 2f 09 09 42 6c 69 | 74 50 69 78 69 65 4d 61 |.//..Bli|tPixieMa|
|000015f0| 73 6b 44 72 61 77 50 72 | 6f 63 0d 2f 2f 2f 2d 2d |skDrawPr|oc.///--|
|00001600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001610| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001620| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001630| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001640| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001650| 2d 2d 2d 2d 0d 0d 53 57 | 5f 46 55 4e 43 20 76 6f |----..SW|_FUNC vo|
|00001660| 69 64 20 42 6c 69 74 50 | 69 78 69 65 4d 61 73 6b |id BlitP|ixieMask|
|00001670| 44 72 61 77 50 72 6f 63 | 28 0d 09 46 72 61 6d 65 |DrawProc|(..Frame|
|00001680| 50 74 72 20 73 72 63 46 | 72 61 6d 65 50 2c 0d 09 |Ptr srcF|rameP,..|
|00001690| 46 72 61 6d 65 50 74 72 | 20 64 73 74 46 72 61 6d |FramePtr| dstFram|
|000016a0| 65 50 2c 0d 09 52 65 63 | 74 20 2a 73 72 63 52 65 |eP,..Rec|t *srcRe|
|000016b0| 63 74 2c 0d 09 52 65 63 | 74 20 2a 64 73 74 52 65 |ct,..Rec|t *dstRe|
|000016c0| 63 74 29 0d 7b 0d 09 52 | 65 63 74 20 64 73 74 42 |ct).{..R|ect dstB|
|000016d0| 6c 69 74 52 65 63 74 20 | 3d 20 2a 64 73 74 52 65 |litRect |= *dstRe|
|000016e0| 63 74 3b 0d 09 52 65 63 | 74 20 73 72 63 42 6c 69 |ct;..Rec|t srcBli|
|000016f0| 74 52 65 63 74 20 3d 20 | 2a 73 72 63 52 65 63 74 |tRect = |*srcRect|
|00001700| 3b 0d 0d 09 09 2f 2f 20 | 63 6c 69 70 20 6f 66 66 |;....// |clip off|
|00001710| 20 74 68 65 20 74 6f 70 | 20 73 6f 20 77 65 20 64 | the top| so we d|
|00001720| 6f 6e 74 20 77 72 69 74 | 65 20 69 6e 74 6f 20 72 |ont writ|e into r|
|00001730| 61 6e 64 6f 6d 20 6d 65 | 6d 6f 72 79 0d 09 69 66 |andom me|mory..if|
|00001740| 20 28 64 73 74 42 6c 69 | 74 52 65 63 74 2e 74 6f | (dstBli|tRect.to|
|00001750| 70 20 3c 20 20 64 73 74 | 46 72 61 6d 65 50 2d 3e |p < dst|FrameP->|
|00001760| 66 72 61 6d 65 52 65 63 | 74 2e 74 6f 70 29 0d 09 |frameRec|t.top)..|
|00001770| 7b 0d 09 09 73 72 63 42 | 6c 69 74 52 65 63 74 2e |{...srcB|litRect.|
|00001780| 74 6f 70 20 2b 3d 20 64 | 73 74 46 72 61 6d 65 50 |top += d|stFrameP|
|00001790| 2d 3e 66 72 61 6d 65 52 | 65 63 74 2e 74 6f 70 20 |->frameR|ect.top |
|000017a0| 2d 20 64 73 74 42 6c 69 | 74 52 65 63 74 2e 74 6f |- dstBli|tRect.to|
|000017b0| 70 3b 0d 09 09 64 73 74 | 42 6c 69 74 52 65 63 74 |p;...dst|BlitRect|
|000017c0| 2e 74 6f 70 20 3d 20 20 | 64 73 74 46 72 61 6d 65 |.top = |dstFrame|
|000017d0| 50 2d 3e 66 72 61 6d 65 | 52 65 63 74 2e 74 6f 70 |P->frame|Rect.top|
|000017e0| 3b 0d 09 09 69 66 20 28 | 64 73 74 42 6c 69 74 52 |;...if (|dstBlitR|
|000017f0| 65 63 74 2e 74 6f 70 20 | 3e 3d 20 64 73 74 42 6c |ect.top |>= dstBl|
|00001800| 69 74 52 65 63 74 2e 62 | 6f 74 74 6f 6d 29 20 72 |itRect.b|ottom) r|
|00001810| 65 74 75 72 6e 3b 09 0d | 09 7d 0d 09 09 2f 2f 20 |eturn;..|.}...// |
|00001820| 63 6c 69 70 20 6f 66 66 | 20 74 68 65 20 62 6f 74 |clip off| the bot|
|00001830| 74 6f 6d 0d 09 65 6c 73 | 65 20 69 66 20 28 64 73 |tom..els|e if (ds|
|00001840| 74 42 6c 69 74 52 65 63 | 74 2e 62 6f 74 74 6f 6d |tBlitRec|t.bottom|
|00001850| 20 3e 20 20 64 73 74 46 | 72 61 6d 65 50 2d 3e 66 | > dstF|rameP->f|
|00001860| 72 61 6d 65 52 65 63 74 | 2e 62 6f 74 74 6f 6d 29 |rameRect|.bottom)|
|00001870| 0d 09 7b 0d 09 09 64 73 | 74 42 6c 69 74 52 65 63 |..{...ds|tBlitRec|
|00001880| 74 2e 62 6f 74 74 6f 6d | 20 3d 20 20 64 73 74 46 |t.bottom| = dstF|
|00001890| 72 61 6d 65 50 2d 3e 66 | 72 61 6d 65 52 65 63 74 |rameP->f|rameRect|
|000018a0| 2e 62 6f 74 74 6f 6d 3b | 0d 09 09 69 66 20 28 64 |.bottom;|...if (d|
|000018b0| 73 74 42 6c 69 74 52 65 | 63 74 2e 62 6f 74 74 6f |stBlitRe|ct.botto|
|000018c0| 6d 20 3c 3d 20 64 73 74 | 42 6c 69 74 52 65 63 74 |m <= dst|BlitRect|
|000018d0| 2e 74 6f 70 29 20 72 65 | 74 75 72 6e 3b 0d 09 7d |.top) re|turn;..}|
|000018e0| 0d 0d 09 09 2f 2f 20 63 | 6c 69 70 20 6f 66 66 20 |....// c|lip off |
|000018f0| 74 68 65 20 6c 65 66 74 | 0d 09 69 66 20 28 64 73 |the left|..if (ds|
|00001900| 74 42 6c 69 74 52 65 63 | 74 2e 6c 65 66 74 20 3c |tBlitRec|t.left <|
|00001910| 20 20 64 73 74 46 72 61 | 6d 65 50 2d 3e 66 72 61 | dstFra|meP->fra|
|00001920| 6d 65 52 65 63 74 2e 6c | 65 66 74 29 0d 09 7b 0d |meRect.l|eft)..{.|
|00001930| 09 09 73 72 63 42 6c 69 | 74 52 65 63 74 2e 6c 65 |..srcBli|tRect.le|
|00001940| 66 74 20 2b 3d 20 64 73 | 74 46 72 61 6d 65 50 2d |ft += ds|tFrameP-|
|00001950| 3e 66 72 61 6d 65 52 65 | 63 74 2e 6c 65 66 74 20 |>frameRe|ct.left |
|00001960| 2d 20 64 73 74 42 6c 69 | 74 52 65 63 74 2e 6c 65 |- dstBli|tRect.le|
|00001970| 66 74 3b 0d 09 09 64 73 | 74 42 6c 69 74 52 65 63 |ft;...ds|tBlitRec|
|00001980| 74 2e 6c 65 66 74 20 3d | 20 20 64 73 74 46 72 61 |t.left =| dstFra|
|00001990| 6d 65 50 2d 3e 66 72 61 | 6d 65 52 65 63 74 2e 6c |meP->fra|meRect.l|
|000019a0| 65 66 74 3b 0d 09 09 69 | 66 20 28 64 73 74 42 6c |eft;...i|f (dstBl|
|000019b0| 69 74 52 65 63 74 2e 6c | 65 66 74 20 3e 3d 20 64 |itRect.l|eft >= d|
|000019c0| 73 74 42 6c 69 74 52 65 | 63 74 2e 72 69 67 68 74 |stBlitRe|ct.right|
|000019d0| 29 20 72 65 74 75 72 6e | 3b 0d 09 7d 0d 09 09 2f |) return|;..}.../|
|000019e0| 2f 20 63 6c 69 70 20 6f | 66 66 20 74 68 65 20 72 |/ clip o|ff the r|
|000019f0| 69 67 68 74 0d 09 65 6c | 73 65 20 69 66 20 28 64 |ight..el|se if (d|
|00001a00| 73 74 42 6c 69 74 52 65 | 63 74 2e 72 69 67 68 74 |stBlitRe|ct.right|
|00001a10| 20 3e 20 20 64 73 74 46 | 72 61 6d 65 50 2d 3e 66 | > dstF|rameP->f|
|00001a20| 72 61 6d 65 52 65 63 74 | 2e 72 69 67 68 74 29 0d |rameRect|.right).|
|00001a30| 09 7b 0d 09 09 64 73 74 | 42 6c 69 74 52 65 63 74 |.{...dst|BlitRect|
|00001a40| 2e 72 69 67 68 74 20 3d | 20 20 64 73 74 46 72 61 |.right =| dstFra|
|00001a50| 6d 65 50 2d 3e 66 72 61 | 6d 65 52 65 63 74 2e 72 |meP->fra|meRect.r|
|00001a60| 69 67 68 74 3b 0d 09 09 | 69 66 20 28 64 73 74 42 |ight;...|if (dstB|
|00001a70| 6c 69 74 52 65 63 74 2e | 72 69 67 68 74 20 3c 3d |litRect.|right <=|
|00001a80| 20 64 73 74 42 6c 69 74 | 52 65 63 74 2e 6c 65 66 | dstBlit|Rect.lef|
|00001a90| 74 29 20 72 65 74 75 72 | 6e 3b 0d 09 7d 0d 0d 09 |t) retur|n;..}...|
|00001aa0| 7b 0d 09 09 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |{...unsi|gned lon|
|00001ab0| 67 20 6e 75 6d 42 79 74 | 65 73 50 65 72 52 6f 77 |g numByt|esPerRow|
|00001ac0| 3b 0d 09 09 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |;...unsi|gned lon|
|00001ad0| 67 20 73 72 63 42 61 73 | 65 4f 66 66 73 65 74 3b |g srcBas|eOffset;|
|00001ae0| 0d 0d 09 09 09 2f 2f 20 | 63 61 6c 63 75 6c 61 74 |.....// |calculat|
|00001af0| 65 20 74 68 65 20 6f 66 | 66 73 65 74 20 74 6f 20 |e the of|fset to |
|00001b00| 74 68 65 20 66 69 72 73 | 74 20 62 79 74 65 20 6f |the firs|t byte o|
|00001b10| 66 20 74 68 65 20 73 6f | 75 72 63 65 0d 09 09 73 |f the so|urce...s|
|00001b20| 72 63 42 61 73 65 4f 66 | 66 73 65 74 20 3d 20 73 |rcBaseOf|fset = s|
|00001b30| 72 63 46 72 61 6d 65 50 | 2d 3e 73 63 61 6e 4c 69 |rcFrameP|->scanLi|
|00001b40| 6e 65 50 74 72 41 72 72 | 61 79 5b 73 72 63 42 6c |nePtrArr|ay[srcBl|
|00001b50| 69 74 52 65 63 74 2e 74 | 6f 70 5d 20 2b 20 73 72 |itRect.t|op] + sr|
|00001b60| 63 42 6c 69 74 52 65 63 | 74 2e 6c 65 66 74 3b 0d |cBlitRec|t.left;.|
|00001b70| 0d 09 09 09 2f 2f 20 63 | 61 6c 63 75 6c 61 74 65 |....// c|alculate|
|00001b80| 20 74 68 65 20 6e 75 6d | 62 65 72 20 6f 66 20 62 | the num|ber of b|
|00001b90| 79 74 65 73 20 69 6e 20 | 61 20 72 6f 77 0d 09 09 |ytes in |a row...|
|00001ba0| 6e 75 6d 42 79 74 65 73 | 50 65 72 52 6f 77 20 3d |numBytes|PerRow =|
|00001bb0| 20 28 64 73 74 42 6c 69 | 74 52 65 63 74 2e 72 69 | (dstBli|tRect.ri|
|00001bc0| 67 68 74 20 2d 20 64 73 | 74 42 6c 69 74 52 65 63 |ght - ds|tBlitRec|
|00001bd0| 74 2e 6c 65 66 74 29 3b | 0d 0d 09 09 42 6c 69 74 |t.left);|....Blit|
|00001be0| 50 69 78 69 65 4d 61 73 | 6b 28 0d 09 09 09 09 2f |PixieMas|k(...../|
|00001bf0| 2f 20 63 61 6c 63 75 6c | 61 74 65 20 74 68 65 20 |/ calcul|ate the |
|00001c00| 61 64 64 72 65 73 73 20 | 6f 66 20 74 68 65 20 66 |address |of the f|
|00001c10| 69 72 73 74 20 62 79 74 | 65 20 6f 66 20 74 68 65 |irst byt|e of the|
|00001c20| 20 73 6f 75 72 63 65 0d | 09 09 09 28 50 69 78 65 | source.|...(Pixe|
|00001c30| 6c 50 74 72 29 28 73 72 | 63 46 72 61 6d 65 50 2d |lPtr)(sr|cFrameP-|
|00001c40| 3e 66 72 61 6d 65 42 61 | 73 65 41 64 64 72 20 2b |>frameBa|seAddr +|
|00001c50| 20 73 72 63 42 61 73 65 | 4f 66 66 73 65 74 29 2c | srcBase|Offset),|
|00001c60| 0d 0d 09 09 09 09 2f 2f | 20 63 61 6c 63 75 6c 61 |......//| calcula|
|00001c70| 74 65 20 74 68 65 20 61 | 64 64 72 65 73 73 20 6f |te the a|ddress o|
|00001c80| 66 20 74 68 65 20 66 69 | 72 73 74 20 62 79 74 65 |f the fi|rst byte|
|00001c90| 20 6f 66 20 74 68 65 20 | 64 65 73 74 69 6e 61 74 | of the |destinat|
|00001ca0| 69 6f 6e 0d 09 09 09 28 | 50 69 78 65 6c 50 74 72 |ion....(|PixelPtr|
|00001cb0| 29 28 64 73 74 46 72 61 | 6d 65 50 2d 3e 66 72 61 |)(dstFra|meP->fra|
|00001cc0| 6d 65 42 61 73 65 41 64 | 64 72 20 2b 20 0d 09 09 |meBaseAd|dr + ...|
|00001cd0| 09 09 28 64 73 74 46 72 | 61 6d 65 50 2d 3e 73 63 |..(dstFr|ameP->sc|
|00001ce0| 61 6e 4c 69 6e 65 50 74 | 72 41 72 72 61 79 5b 64 |anLinePt|rArray[d|
|00001cf0| 73 74 42 6c 69 74 52 65 | 63 74 2e 74 6f 70 5d 29 |stBlitRe|ct.top])|
|00001d00| 20 2b 20 64 73 74 42 6c | 69 74 52 65 63 74 2e 6c | + dstBl|itRect.l|
|00001d10| 65 66 74 29 2c 0d 0d 09 | 09 09 09 2f 2f 20 63 61 |eft),...|...// ca|
|00001d20| 6c 63 75 6c 61 74 65 20 | 74 68 65 20 61 64 64 72 |lculate |the addr|
|00001d30| 65 73 73 20 6f 66 20 74 | 68 65 20 66 69 72 73 74 |ess of t|he first|
|00001d40| 20 62 79 74 65 20 6f 66 | 20 74 68 65 20 6d 61 73 | byte of| the mas|
|00001d50| 6b 0d 09 09 09 28 50 69 | 78 65 6c 50 74 72 29 28 |k....(Pi|xelPtr)(|
|00001d60| 73 72 63 46 72 61 6d 65 | 50 2d 3e 6d 61 73 6b 42 |srcFrame|P->maskB|
|00001d70| 61 73 65 41 64 64 72 20 | 2b 20 73 72 63 42 61 73 |aseAddr |+ srcBas|
|00001d80| 65 4f 66 66 73 65 74 29 | 2c 0d 0d 09 09 09 09 2f |eOffset)|,....../|
|00001d90| 2f 20 63 61 6c 63 75 6c | 61 74 65 20 74 68 65 20 |/ calcul|ate the |
|00001da0| 6e 75 6d 62 65 72 20 6f | 66 20 72 6f 77 73 20 74 |number o|f rows t|
|00001db0| 6f 20 62 6c 69 74 0d 09 | 09 09 64 73 74 42 6c 69 |o blit..|..dstBli|
|00001dc0| 74 52 65 63 74 2e 62 6f | 74 74 6f 6d 20 2d 20 64 |tRect.bo|ttom - d|
|00001dd0| 73 74 42 6c 69 74 52 65 | 63 74 2e 74 6f 70 2c 0d |stBlitRe|ct.top,.|
|00001de0| 0d 09 09 09 09 2f 2f 20 | 6e 75 6d 62 65 72 20 6f |.....// |number o|
|00001df0| 66 20 62 79 74 65 73 20 | 69 6e 20 61 20 72 6f 77 |f bytes |in a row|
|00001e00| 20 28 64 75 68 21 29 0d | 09 09 09 6e 75 6d 42 79 | (duh!).|...numBy|
|00001e10| 74 65 73 50 65 72 52 6f | 77 2c 0d 0d 09 09 09 09 |tesPerRo|w,......|
|00001e20| 2f 2f 20 63 61 6c 63 75 | 6c 61 74 65 20 6f 66 66 |// calcu|late off|
|00001e30| 73 65 74 20 66 72 6f 6d | 20 65 6e 64 20 6f 66 20 |set from| end of |
|00001e40| 6f 6e 65 20 72 6f 77 20 | 74 6f 20 62 65 67 69 6e |one row |to begin|
|00001e50| 6e 69 6e 67 20 6f 66 20 | 6e 65 78 74 20 72 6f 77 |ning of |next row|
|00001e60| 0d 09 09 09 73 72 63 46 | 72 61 6d 65 50 2d 3e 66 |....srcF|rameP->f|
|00001e70| 72 61 6d 65 52 6f 77 42 | 79 74 65 73 20 2d 20 6e |rameRowB|ytes - n|
|00001e80| 75 6d 42 79 74 65 73 50 | 65 72 52 6f 77 2c 0d 09 |umBytesP|erRow,..|
|00001e90| 09 09 64 73 74 46 72 61 | 6d 65 50 2d 3e 66 72 61 |..dstFra|meP->fra|
|00001ea0| 6d 65 52 6f 77 42 79 74 | 65 73 20 2d 20 6e 75 6d |meRowByt|es - num|
|00001eb0| 42 79 74 65 73 50 65 72 | 52 6f 77 29 3b 0d 09 7d |BytesPer|Row);..}|
|00001ec0| 0d 7d 0d 0d 0d 2f 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |.}...///|--------|
|00001ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 2f |--------|------./|
|00001f20| 2f 09 09 43 6f 6d 70 69 | 6c 65 64 53 70 72 69 74 |/..Compi|ledSprit|
|00001f30| 65 44 72 61 77 50 72 6f | 63 0d 2f 2f 2f 2d 2d 2d |eDrawPro|c.///---|
|00001f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f90| 2d 2d 2d 0d 0d 53 57 5f | 46 55 4e 43 20 76 6f 69 |---..SW_|FUNC voi|
|00001fa0| 64 20 43 6f 6d 70 69 6c | 65 64 53 70 72 69 74 65 |d Compil|edSprite|
|00001fb0| 44 72 61 77 50 72 6f 63 | 28 0d 09 46 72 61 6d 65 |DrawProc|(..Frame|
|00001fc0| 50 74 72 20 73 72 63 46 | 72 61 6d 65 50 2c 0d 09 |Ptr srcF|rameP,..|
|00001fd0| 46 72 61 6d 65 50 74 72 | 20 64 73 74 46 72 61 6d |FramePtr| dstFram|
|00001fe0| 65 50 2c 0d 09 52 65 63 | 74 20 2a 73 72 63 52 65 |eP,..Rec|t *srcRe|
|00001ff0| 63 74 2c 0d 09 52 65 63 | 74 20 2a 64 73 74 52 65 |ct,..Rec|t *dstRe|
|00002000| 63 74 29 0d 7b 0d 09 52 | 65 63 74 20 64 73 74 42 |ct).{..R|ect dstB|
|00002010| 6c 69 74 52 65 63 74 20 | 3d 20 2a 64 73 74 52 65 |litRect |= *dstRe|
|00002020| 63 74 3b 0d 09 52 65 63 | 74 20 73 72 63 42 6c 69 |ct;..Rec|t srcBli|
|00002030| 74 52 65 63 74 20 3d 20 | 2a 73 72 63 52 65 63 74 |tRect = |*srcRect|
|00002040| 3b 0d 09 42 6f 6f 6c 65 | 61 6e 20 75 73 65 43 75 |;..Boole|an useCu|
|00002050| 73 74 6f 6d 42 6c 69 74 | 74 65 72 20 3d 20 74 72 |stomBlit|ter = tr|
|00002060| 75 65 3b 09 2f 2f 20 61 | 73 73 75 6d 65 20 77 65 |ue;.// a|ssume we|
|00002070| 20 77 69 6c 6c 20 62 65 | 20 61 62 6c 65 20 74 6f | will be| able to|
|00002080| 20 75 73 65 20 74 68 65 | 20 63 75 73 74 6f 6d 20 | use the| custom |
|00002090| 62 6c 69 74 74 65 72 0d | 0d 09 2f 2f 20 77 65 20 |blitter.|..// we |
|000020a0| 66 69 72 73 74 20 63 68 | 65 63 6b 20 74 6f 20 73 |first ch|eck to s|
|000020b0| 65 65 20 69 66 20 61 6e | 79 20 63 6c 69 70 70 69 |ee if an|y clippi|
|000020c0| 6e 67 20 77 69 6c 6c 20 | 62 65 20 6e 65 63 65 73 |ng will |be neces|
|000020d0| 73 61 72 79 2c 20 61 6e | 64 20 61 74 20 74 68 65 |sary, an|d at the|
|000020e0| 20 73 61 6d 65 20 74 69 | 6d 65 0d 09 2f 2f 20 77 | same ti|me..// w|
|000020f0| 65 20 64 65 74 65 72 6d | 69 6e 65 20 77 68 65 74 |e determ|ine whet|
|00002100| 68 65 72 20 6f 72 20 6e | 6f 74 20 77 65 20 63 61 |her or n|ot we ca|
|00002110| 6e 20 75 73 65 20 74 68 | 65 20 63 75 73 74 6f 6d |n use th|e custom|
|00002120| 20 63 6f 6d 70 69 6c 65 | 64 20 62 6c 69 74 74 65 | compile|d blitte|
|00002130| 72 2e 20 77 65 20 6d 75 | 73 74 0d 09 2f 2f 20 64 |r. we mu|st..// d|
|00002140| 6f 20 74 68 69 73 20 73 | 69 6e 63 65 20 74 68 65 |o this s|ince the|
|00002150| 20 63 75 73 74 6f 6d 20 | 62 6c 69 74 74 65 72 20 | custom |blitter |
|00002160| 63 61 6e 6e 6f 74 20 68 | 61 6e 64 6c 65 20 63 6c |cannot h|andle cl|
|00002170| 69 70 70 69 6e 67 2e 0d | 0d 09 09 2f 2f 20 63 6c |ipping..|...// cl|
|00002180| 69 70 20 6f 66 66 20 74 | 68 65 20 74 6f 70 20 73 |ip off t|he top s|
|00002190| 6f 20 77 65 20 64 6f 6e | 74 20 77 72 69 74 65 20 |o we don|t write |
|000021a0| 69 6e 74 6f 20 72 61 6e | 64 6f 6d 20 6d 65 6d 6f |into ran|dom memo|
|000021b0| 72 79 0d 09 69 66 20 28 | 64 73 74 42 6c 69 74 52 |ry..if (|dstBlitR|
|000021c0| 65 63 74 2e 74 6f 70 20 | 3c 20 20 64 73 74 46 72 |ect.top |< dstFr|
|000021d0| 61 6d 65 50 2d 3e 66 72 | 61 6d 65 52 65 63 74 2e |ameP->fr|ameRect.|
|000021e0| 74 6f 70 29 0d 09 7b 0d | 09 09 73 72 63 42 6c 69 |top)..{.|..srcBli|
|000021f0| 74 52 65 63 74 2e 74 6f | 70 20 2b 3d 20 64 73 74 |tRect.to|p += dst|
|00002200| 46 72 61 6d 65 50 2d 3e | 66 72 61 6d 65 52 65 63 |FrameP->|frameRec|
|00002210| 74 2e 74 6f 70 20 2d 20 | 64 73 74 42 6c 69 74 52 |t.top - |dstBlitR|
|00002220| 65 63 74 2e 74 6f 70 3b | 0d 09 09 64 73 74 42 6c |ect.top;|...dstBl|
|00002230| 69 74 52 65 63 74 2e 74 | 6f 70 20 3d 20 20 64 73 |itRect.t|op = ds|
|00002240| 74 46 72 61 6d 65 50 2d | 3e 66 72 61 6d 65 52 65 |tFrameP-|>frameRe|
|00002250| 63 74 2e 74 6f 70 3b 0d | 09 09 69 66 20 28 64 73 |ct.top;.|..if (ds|
|00002260| 74 42 6c 69 74 52 65 63 | 74 2e 74 6f 70 20 3e 3d |tBlitRec|t.top >=|
|00002270| 20 64 73 74 42 6c 69 74 | 52 65 63 74 2e 62 6f 74 | dstBlit|Rect.bot|
|00002280| 74 6f 6d 29 20 72 65 74 | 75 72 6e 3b 0d 09 09 75 |tom) ret|urn;...u|
|00002290| 73 65 43 75 73 74 6f 6d | 42 6c 69 74 74 65 72 20 |seCustom|Blitter |
|000022a0| 3d 20 66 61 6c 73 65 3b | 09 0d 09 7d 0d 09 09 2f |= false;|...}.../|
|000022b0| 2f 20 63 6c 69 70 20 6f | 66 66 20 74 68 65 20 62 |/ clip o|ff the b|
|000022c0| 6f 74 74 6f 6d 0d 09 65 | 6c 73 65 20 69 66 20 28 |ottom..e|lse if (|
|000022d0| 64 73 74 42 6c 69 74 52 | 65 63 74 2e 62 6f 74 74 |dstBlitR|ect.bott|
|000022e0| 6f 6d 20 3e 20 20 64 73 | 74 46 72 61 6d 65 50 2d |om > ds|tFrameP-|
|000022f0| 3e 66 72 61 6d 65 52 65 | 63 74 2e 62 6f 74 74 6f |>frameRe|ct.botto|
|00002300| 6d 29 0d 09 7b 0d 09 09 | 64 73 74 42 6c 69 74 52 |m)..{...|dstBlitR|
|00002310| 65 63 74 2e 62 6f 74 74 | 6f 6d 20 3d 20 20 64 73 |ect.bott|om = ds|
|00002320| 74 46 72 61 6d 65 50 2d | 3e 66 72 61 6d 65 52 65 |tFrameP-|>frameRe|
|00002330| 63 74 2e 62 6f 74 74 6f | 6d 3b 0d 09 09 69 66 20 |ct.botto|m;...if |
|00002340| 28 64 73 74 42 6c 69 74 | 52 65 63 74 2e 62 6f 74 |(dstBlit|Rect.bot|
|00002350| 74 6f 6d 20 3c 3d 20 64 | 73 74 42 6c 69 74 52 65 |tom <= d|stBlitRe|
|00002360| 63 74 2e 74 6f 70 29 20 | 72 65 74 75 72 6e 3b 0d |ct.top) |return;.|
|00002370| 09 09 75 73 65 43 75 73 | 74 6f 6d 42 6c 69 74 74 |..useCus|tomBlitt|
|00002380| 65 72 20 3d 20 66 61 6c | 73 65 3b 09 0d 09 7d 0d |er = fal|se;...}.|
|00002390| 0d 09 09 2f 2f 20 63 6c | 69 70 20 6f 66 66 20 74 |...// cl|ip off t|
|000023a0| 68 65 20 6c 65 66 74 0d | 09 69 66 20 28 64 73 74 |he left.|.if (dst|
|000023b0| 42 6c 69 74 52 65 63 74 | 2e 6c 65 66 74 20 3c 20 |BlitRect|.left < |
|000023c0| 20 64 73 74 46 72 61 6d | 65 50 2d 3e 66 72 61 6d | dstFram|eP->fram|
|000023d0| 65 52 65 63 74 2e 6c 65 | 66 74 29 0d 09 7b 0d 09 |eRect.le|ft)..{..|
|000023e0| 09 73 72 63 42 6c 69 74 | 52 65 63 74 2e 6c 65 66 |.srcBlit|Rect.lef|
|000023f0| 74 20 2b 3d 20 64 73 74 | 46 72 61 6d 65 50 2d 3e |t += dst|FrameP->|
|00002400| 66 72 61 6d 65 52 65 63 | 74 2e 6c 65 66 74 20 2d |frameRec|t.left -|
|00002410| 20 64 73 74 42 6c 69 74 | 52 65 63 74 2e 6c 65 66 | dstBlit|Rect.lef|
|00002420| 74 3b 0d 09 09 64 73 74 | 42 6c 69 74 52 65 63 74 |t;...dst|BlitRect|
|00002430| 2e 6c 65 66 74 20 3d 20 | 20 64 73 74 46 72 61 6d |.left = | dstFram|
|00002440| 65 50 2d 3e 66 72 61 6d | 65 52 65 63 74 2e 6c 65 |eP->fram|eRect.le|
|00002450| 66 74 3b 0d 09 09 69 66 | 20 28 64 73 74 42 6c 69 |ft;...if| (dstBli|
|00002460| 74 52 65 63 74 2e 6c 65 | 66 74 20 3e 3d 20 64 73 |tRect.le|ft >= ds|
|00002470| 74 42 6c 69 74 52 65 63 | 74 2e 72 69 67 68 74 29 |tBlitRec|t.right)|
|00002480| 20 72 65 74 75 72 6e 3b | 0d 09 09 75 73 65 43 75 | return;|...useCu|
|00002490| 73 74 6f 6d 42 6c 69 74 | 74 65 72 20 3d 20 66 61 |stomBlit|ter = fa|
|000024a0| 6c 73 65 3b 09 0d 09 7d | 0d 09 09 2f 2f 20 63 6c |lse;...}|...// cl|
|000024b0| 69 70 20 6f 66 66 20 74 | 68 65 20 72 69 67 68 74 |ip off t|he right|
|000024c0| 0d 09 65 6c 73 65 20 69 | 66 20 28 64 73 74 42 6c |..else i|f (dstBl|
|000024d0| 69 74 52 65 63 74 2e 72 | 69 67 68 74 20 3e 20 20 |itRect.r|ight > |
|000024e0| 64 73 74 46 72 61 6d 65 | 50 2d 3e 66 72 61 6d 65 |dstFrame|P->frame|
|000024f0| 52 65 63 74 2e 72 69 67 | 68 74 29 0d 09 7b 0d 09 |Rect.rig|ht)..{..|
|00002500| 09 64 73 74 42 6c 69 74 | 52 65 63 74 2e 72 69 67 |.dstBlit|Rect.rig|
|00002510| 68 74 20 3d 20 20 64 73 | 74 46 72 61 6d 65 50 2d |ht = ds|tFrameP-|
|00002520| 3e 66 72 61 6d 65 52 65 | 63 74 2e 72 69 67 68 74 |>frameRe|ct.right|
|00002530| 3b 0d 09 09 69 66 20 28 | 64 73 74 42 6c 69 74 52 |;...if (|dstBlitR|
|00002540| 65 63 74 2e 72 69 67 68 | 74 20 3c 3d 20 64 73 74 |ect.righ|t <= dst|
|00002550| 42 6c 69 74 52 65 63 74 | 2e 6c 65 66 74 29 20 72 |BlitRect|.left) r|
|00002560| 65 74 75 72 6e 3b 0d 09 | 09 75 73 65 43 75 73 74 |eturn;..|.useCust|
|00002570| 6f 6d 42 6c 69 74 74 65 | 72 20 3d 20 66 61 6c 73 |omBlitte|r = fals|
|00002580| 65 3b 09 0d 09 7d 0d 0d | 09 2f 2f 20 69 66 20 77 |e;...}..|.// if w|
|00002590| 65 20 64 69 64 6e 27 74 | 20 68 61 76 65 20 74 6f |e didn't| have to|
|000025a0| 20 63 6c 69 70 20 74 68 | 65 20 73 70 72 69 74 65 | clip th|e sprite|
|000025b0| 2c 20 77 65 20 63 61 6e | 20 63 61 6c 6c 20 74 68 |, we can| call th|
|000025c0| 65 20 63 75 73 74 6f 6d | 20 63 6f 6d 70 69 6c 65 |e custom| compile|
|000025d0| 64 20 62 6c 69 74 74 65 | 72 0d 09 2f 2f 20 68 6f |d blitte|r..// ho|
|000025e0| 70 65 66 75 6c 6c 79 20 | 74 68 69 73 20 77 69 6c |pefully |this wil|
|000025f0| 6c 20 62 65 20 74 68 65 | 20 6d 6f 73 74 20 63 6f |l be the| most co|
|00002600| 6d 6d 6f 6e 20 63 61 73 | 65 20 28 69 65 2e 20 74 |mmon cas|e (ie. t|
|00002610| 68 65 20 73 70 72 69 74 | 65 73 20 77 69 6c 6c 20 |he sprit|es will |
|00002620| 62 65 20 65 6e 74 69 72 | 65 6c 79 0d 09 2f 2f 20 |be entir|ely..// |
|00002630| 6f 6e 20 74 68 65 20 73 | 63 72 65 65 6e 20 6d 6f |on the s|creen mo|
|00002640| 72 65 20 6f 66 74 65 6e | 20 74 68 61 6e 20 6e 6f |re often| than no|
|00002650| 74 29 0d 0d 09 69 66 20 | 28 75 73 65 43 75 73 74 |t)...if |(useCust|
|00002660| 6f 6d 42 6c 69 74 74 65 | 72 29 0d 09 7b 0d 09 09 |omBlitte|r)..{...|
|00002670| 28 2a 73 72 63 46 72 61 | 6d 65 50 2d 3e 66 72 61 |(*srcFra|meP->fra|
|00002680| 6d 65 42 6c 69 74 74 65 | 72 50 29 28 0d 09 09 09 |meBlitte|rP)(....|
|00002690| 73 72 63 46 72 61 6d 65 | 50 2d 3e 66 72 61 6d 65 |srcFrame|P->frame|
|000026a0| 52 6f 77 42 79 74 65 73 | 2c 0d 09 09 09 64 73 74 |RowBytes|,....dst|
|000026b0| 46 72 61 6d 65 50 2d 3e | 66 72 61 6d 65 52 6f 77 |FrameP->|frameRow|
|000026c0| 42 79 74 65 73 2c 0d 09 | 09 09 73 72 63 46 72 61 |Bytes,..|..srcFra|
|000026d0| 6d 65 50 2d 3e 66 72 61 | 6d 65 42 61 73 65 41 64 |meP->fra|meBaseAd|
|000026e0| 64 72 2c 0d 09 09 09 64 | 73 74 46 72 61 6d 65 50 |dr,....d|stFrameP|
|000026f0| 2d 3e 66 72 61 6d 65 42 | 61 73 65 41 64 64 72 20 |->frameB|aseAddr |
|00002700| 2b 0d 09 09 09 09 64 73 | 74 46 72 61 6d 65 50 2d |+.....ds|tFrameP-|
|00002710| 3e 73 63 61 6e 4c 69 6e | 65 50 74 72 41 72 72 61 |>scanLin|ePtrArra|
|00002720| 79 5b 64 73 74 52 65 63 | 74 2d 3e 74 6f 70 5d 20 |y[dstRec|t->top] |
|00002730| 2b 20 64 73 74 52 65 63 | 74 2d 3e 6c 65 66 74 29 |+ dstRec|t->left)|
|00002740| 3b 0d 09 7d 0d 09 65 6c | 73 65 0d 09 7b 0d 09 09 |;..}..el|se..{...|
|00002750| 75 6e 73 69 67 6e 65 64 | 20 6c 6f 6e 67 20 6e 75 |unsigned| long nu|
|00002760| 6d 42 79 74 65 73 50 65 | 72 52 6f 77 3b 0d 09 09 |mBytesPe|rRow;...|
|00002770| 75 6e 73 69 67 6e 65 64 | 20 6c 6f 6e 67 20 73 72 |unsigned| long sr|
|00002780| 63 42 61 73 65 4f 66 66 | 73 65 74 3b 0d 0d 09 09 |cBaseOff|set;....|
|00002790| 09 2f 2f 20 63 61 6c 63 | 75 6c 61 74 65 20 74 68 |.// calc|ulate th|
|000027a0| 65 20 6f 66 66 73 65 74 | 20 74 6f 20 74 68 65 20 |e offset| to the |
|000027b0| 66 69 72 73 74 20 62 79 | 74 65 20 6f 66 20 74 68 |first by|te of th|
|000027c0| 65 20 73 6f 75 72 63 65 | 0d 09 09 73 72 63 42 61 |e source|...srcBa|
|000027d0| 73 65 4f 66 66 73 65 74 | 20 3d 20 73 72 63 46 72 |seOffset| = srcFr|
|000027e0| 61 6d 65 50 2d 3e 73 63 | 61 6e 4c 69 6e 65 50 74 |ameP->sc|anLinePt|
|000027f0| 72 41 72 72 61 79 5b 73 | 72 63 42 6c 69 74 52 65 |rArray[s|rcBlitRe|
|00002800| 63 74 2e 74 6f 70 5d 20 | 2b 20 73 72 63 42 6c 69 |ct.top] |+ srcBli|
|00002810| 74 52 65 63 74 2e 6c 65 | 66 74 3b 0d 0d 09 09 09 |tRect.le|ft;.....|
|00002820| 2f 2f 20 63 61 6c 63 75 | 6c 61 74 65 20 74 68 65 |// calcu|late the|
|00002830| 20 6e 75 6d 62 65 72 20 | 6f 66 20 62 79 74 65 73 | number |of bytes|
|00002840| 20 69 6e 20 61 20 72 6f | 77 0d 09 09 6e 75 6d 42 | in a ro|w...numB|
|00002850| 79 74 65 73 50 65 72 52 | 6f 77 20 3d 20 28 64 73 |ytesPerR|ow = (ds|
|00002860| 74 42 6c 69 74 52 65 63 | 74 2e 72 69 67 68 74 20 |tBlitRec|t.right |
|00002870| 2d 20 64 73 74 42 6c 69 | 74 52 65 63 74 2e 6c 65 |- dstBli|tRect.le|
|00002880| 66 74 29 3b 0d 0d 09 09 | 42 6c 69 74 50 69 78 69 |ft);....|BlitPixi|
|00002890| 65 4d 61 73 6b 28 0d 09 | 09 09 09 2f 2f 20 63 61 |eMask(..|...// ca|
|000028a0| 6c 63 75 6c 61 74 65 20 | 74 68 65 20 61 64 64 72 |lculate |the addr|
|000028b0| 65 73 73 20 6f 66 20 74 | 68 65 20 66 69 72 73 74 |ess of t|he first|
|000028c0| 20 62 79 74 65 20 6f 66 | 20 74 68 65 20 73 6f 75 | byte of| the sou|
|000028d0| 72 63 65 0d 09 09 09 28 | 50 69 78 65 6c 50 74 72 |rce....(|PixelPtr|
|000028e0| 29 28 73 72 63 46 72 61 | 6d 65 50 2d 3e 66 72 61 |)(srcFra|meP->fra|
|000028f0| 6d 65 42 61 73 65 41 64 | 64 72 20 2b 20 73 72 63 |meBaseAd|dr + src|
|00002900| 42 61 73 65 4f 66 66 73 | 65 74 29 2c 0d 0d 09 09 |BaseOffs|et),....|
|00002910| 09 09 2f 2f 20 63 61 6c | 63 75 6c 61 74 65 20 74 |..// cal|culate t|
|00002920| 68 65 20 61 64 64 72 65 | 73 73 20 6f 66 20 74 68 |he addre|ss of th|
|00002930| 65 20 66 69 72 73 74 20 | 62 79 74 65 20 6f 66 20 |e first |byte of |
|00002940| 74 68 65 20 64 65 73 74 | 69 6e 61 74 69 6f 6e 0d |the dest|ination.|
|00002950| 09 09 09 28 50 69 78 65 | 6c 50 74 72 29 28 64 73 |...(Pixe|lPtr)(ds|
|00002960| 74 46 72 61 6d 65 50 2d | 3e 66 72 61 6d 65 42 61 |tFrameP-|>frameBa|
|00002970| 73 65 41 64 64 72 20 2b | 20 0d 09 09 09 09 28 64 |seAddr +| .....(d|
|00002980| 73 74 46 72 61 6d 65 50 | 2d 3e 73 63 61 6e 4c 69 |stFrameP|->scanLi|
|00002990| 6e 65 50 74 72 41 72 72 | 61 79 5b 64 73 74 42 6c |nePtrArr|ay[dstBl|
|000029a0| 69 74 52 65 63 74 2e 74 | 6f 70 5d 29 20 2b 20 64 |itRect.t|op]) + d|
|000029b0| 73 74 42 6c 69 74 52 65 | 63 74 2e 6c 65 66 74 29 |stBlitRe|ct.left)|
|000029c0| 2c 0d 0d 09 09 09 09 2f | 2f 20 63 61 6c 63 75 6c |,....../|/ calcul|
|000029d0| 61 74 65 20 74 68 65 20 | 61 64 64 72 65 73 73 20 |ate the |address |
|000029e0| 6f 66 20 74 68 65 20 66 | 69 72 73 74 20 62 79 74 |of the f|irst byt|
|000029f0| 65 20 6f 66 20 74 68 65 | 20 6d 61 73 6b 0d 09 09 |e of the| mask...|
|00002a00| 09 28 50 69 78 65 6c 50 | 74 72 29 28 73 72 63 46 |.(PixelP|tr)(srcF|
|00002a10| 72 61 6d 65 50 2d 3e 6d | 61 73 6b 42 61 73 65 41 |rameP->m|askBaseA|
|00002a20| 64 64 72 20 2b 20 73 72 | 63 42 61 73 65 4f 66 66 |ddr + sr|cBaseOff|
|00002a30| 73 65 74 29 2c 0d 0d 09 | 09 09 09 2f 2f 20 63 61 |set),...|...// ca|
|00002a40| 6c 63 75 6c 61 74 65 20 | 74 68 65 20 6e 75 6d 62 |lculate |the numb|
|00002a50| 65 72 20 6f 66 20 72 6f | 77 73 20 74 6f 20 62 6c |er of ro|ws to bl|
|00002a60| 69 74 0d 09 09 09 64 73 | 74 42 6c 69 74 52 65 63 |it....ds|tBlitRec|
|00002a70| 74 2e 62 6f 74 74 6f 6d | 20 2d 20 64 73 74 42 6c |t.bottom| - dstBl|
|00002a80| 69 74 52 65 63 74 2e 74 | 6f 70 2c 0d 0d 09 09 09 |itRect.t|op,.....|
|00002a90| 09 2f 2f 20 6e 75 6d 62 | 65 72 20 6f 66 20 62 79 |.// numb|er of by|
|00002aa0| 74 65 73 20 69 6e 20 61 | 20 72 6f 77 20 28 64 75 |tes in a| row (du|
|00002ab0| 68 21 29 0d 09 09 09 6e | 75 6d 42 79 74 65 73 50 |h!)....n|umBytesP|
|00002ac0| 65 72 52 6f 77 2c 0d 0d | 09 09 09 09 2f 2f 20 63 |erRow,..|....// c|
|00002ad0| 61 6c 63 75 6c 61 74 65 | 20 6f 66 66 73 65 74 20 |alculate| offset |
|00002ae0| 66 72 6f 6d 20 65 6e 64 | 20 6f 66 20 6f 6e 65 20 |from end| of one |
|00002af0| 72 6f 77 20 74 6f 20 62 | 65 67 69 6e 6e 69 6e 67 |row to b|eginning|
|00002b00| 20 6f 66 20 6e 65 78 74 | 20 72 6f 77 0d 09 09 09 | of next| row....|
|00002b10| 73 72 63 46 72 61 6d 65 | 50 2d 3e 66 72 61 6d 65 |srcFrame|P->frame|
|00002b20| 52 6f 77 42 79 74 65 73 | 20 2d 20 6e 75 6d 42 79 |RowBytes| - numBy|
|00002b30| 74 65 73 50 65 72 52 6f | 77 2c 0d 09 09 09 64 73 |tesPerRo|w,....ds|
|00002b40| 74 46 72 61 6d 65 50 2d | 3e 66 72 61 6d 65 52 6f |tFrameP-|>frameRo|
|00002b50| 77 42 79 74 65 73 20 2d | 20 6e 75 6d 42 79 74 65 |wBytes -| numByte|
|00002b60| 73 50 65 72 52 6f 77 29 | 3b 0d 09 7d 0d 7d 0d 0d |sPerRow)|;..}.}..|
|00002b70| 0d 2f 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.///----|--------|
|00002b80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ba0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002bb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 09 09 46 |--------|--.//..F|
|00002bd0| 61 73 74 43 6f 6d 70 69 | 6c 65 64 53 70 72 69 74 |astCompi|ledSprit|
|00002be0| 65 44 72 61 77 50 72 6f | 63 0d 2f 2f 2f 2d 2d 2d |eDrawPro|c.///---|
|00002bf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c40| 2d 2d 2d 0d 0d 53 57 5f | 46 55 4e 43 20 76 6f 69 |---..SW_|FUNC voi|
|00002c50| 64 20 46 61 73 74 43 6f | 6d 70 69 6c 65 64 53 70 |d FastCo|mpiledSp|
|00002c60| 72 69 74 65 44 72 61 77 | 50 72 6f 63 28 0d 09 46 |riteDraw|Proc(..F|
|00002c70| 72 61 6d 65 50 74 72 20 | 73 72 63 46 72 61 6d 65 |ramePtr |srcFrame|
|00002c80| 50 2c 0d 09 46 72 61 6d | 65 50 74 72 20 64 73 74 |P,..Fram|ePtr dst|
|00002c90| 46 72 61 6d 65 50 2c 0d | 09 52 65 63 74 20 2a 73 |FrameP,.|.Rect *s|
|00002ca0| 72 63 52 65 63 74 2c 0d | 09 52 65 63 74 20 2a 64 |rcRect,.|.Rect *d|
|00002cb0| 73 74 52 65 63 74 29 0d | 7b 0d 23 69 66 20 4d 50 |stRect).|{.#if MP|
|00002cc0| 57 0d 23 70 72 61 67 6d | 61 20 75 6e 75 73 65 64 |W.#pragm|a unused|
|00002cd0| 28 73 72 63 52 65 63 74 | 29 0d 23 65 6e 64 69 66 |(srcRect|).#endif|
|00002ce0| 0d 0d 09 09 2f 2f 20 74 | 68 69 73 20 64 72 61 77 |....// t|his draw|
|00002cf0| 20 70 72 6f 63 20 61 73 | 73 75 6d 65 73 20 6e 6f | proc as|sumes no|
|00002d00| 20 63 6c 69 70 70 69 6e | 67 20 6f 66 20 74 68 65 | clippin|g of the|
|00002d10| 20 73 70 72 69 74 65 20 | 77 69 6c 6c 20 62 65 20 | sprite |will be |
|00002d20| 6e 65 63 65 73 73 61 72 | 79 2e 0d 09 09 2f 2f 20 |necessar|y....// |
|00002d30| 69 6e 20 6f 74 68 65 72 | 20 77 6f 72 64 73 20 74 |in other| words t|
|00002d40| 68 65 20 73 70 72 69 74 | 65 20 6d 75 73 74 20 62 |he sprit|e must b|
|00002d50| 65 20 2a 65 6e 74 69 72 | 65 6c 79 2a 20 6f 6e 20 |e *entir|ely* on |
|00002d60| 74 68 65 20 73 63 72 65 | 65 6e 2e 0d 09 09 2f 2f |the scre|en....//|
|00002d70| 20 69 66 20 74 68 65 20 | 73 70 72 69 74 65 20 69 | if the |sprite i|
|00002d80| 73 20 70 61 72 74 69 61 | 6c 6c 79 20 6f 66 66 20 |s partia|lly off |
|00002d90| 74 68 65 20 65 64 67 65 | 20 6f 66 20 74 68 65 20 |the edge| of the |
|00002da0| 73 63 72 65 65 6e 2c 0d | 09 09 2f 2f 09 74 68 69 |screen,.|..//.thi|
|00002db0| 73 20 77 69 6c 6c 20 2a | 43 52 41 53 48 2a 20 62 |s will *|CRASH* b|
|00002dc0| 69 67 20 74 69 6d 65 0d | 0d 09 28 2a 73 72 63 46 |ig time.|..(*srcF|
|00002dd0| 72 61 6d 65 50 2d 3e 66 | 72 61 6d 65 42 6c 69 74 |rameP->f|rameBlit|
|00002de0| 74 65 72 50 29 28 0d 09 | 09 73 72 63 46 72 61 6d |terP)(..|.srcFram|
|00002df0| 65 50 2d 3e 66 72 61 6d | 65 52 6f 77 42 79 74 65 |eP->fram|eRowByte|
|00002e00| 73 2c 0d 09 09 64 73 74 | 46 72 61 6d 65 50 2d 3e |s,...dst|FrameP->|
|00002e10| 66 72 61 6d 65 52 6f 77 | 42 79 74 65 73 2c 0d 09 |frameRow|Bytes,..|
|00002e20| 09 73 72 63 46 72 61 6d | 65 50 2d 3e 66 72 61 6d |.srcFram|eP->fram|
|00002e30| 65 42 61 73 65 41 64 64 | 72 2c 0d 09 09 64 73 74 |eBaseAdd|r,...dst|
|00002e40| 46 72 61 6d 65 50 2d 3e | 66 72 61 6d 65 42 61 73 |FrameP->|frameBas|
|00002e50| 65 41 64 64 72 20 2b 20 | 64 73 74 46 72 61 6d 65 |eAddr + |dstFrame|
|00002e60| 50 2d 3e 73 63 61 6e 4c | 69 6e 65 50 74 72 41 72 |P->scanL|inePtrAr|
|00002e70| 72 61 79 5b 64 73 74 52 | 65 63 74 2d 3e 74 6f 70 |ray[dstR|ect->top|
|00002e80| 5d 20 2b 20 64 73 74 52 | 65 63 74 2d 3e 6c 65 66 |] + dstR|ect->lef|
|00002e90| 74 29 3b 0d 7d 0d 0d 0d | 23 69 66 20 53 57 5f 55 |t);.}...|#if SW_U|
|00002ea0| 53 45 5f 43 0d 0d 2f 2f | 2f 2d 2d 2d 2d 2d 2d 2d |SE_C..//|/-------|
|00002eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00002f00| 2f 2f 09 09 42 6c 69 74 | 50 69 78 69 65 0d 2f 2f |//..Blit|Pixie.//|
|00002f10| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00002f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f60| 2d 2d 2d 2d 2d 2d 2d 0d | 0d 76 6f 69 64 20 42 6c |-------.|.void Bl|
|00002f70| 69 74 50 69 78 69 65 28 | 0d 09 72 65 67 69 73 74 |itPixie(|..regist|
|00002f80| 65 72 20 50 69 78 65 6c | 43 68 75 6e 6b 50 74 72 |er Pixel|ChunkPtr|
|00002f90| 20 73 72 63 50 69 78 65 | 6c 50 2c 0d 09 72 65 67 | srcPixe|lP,..reg|
|00002fa0| 69 73 74 65 72 20 50 69 | 78 65 6c 43 68 75 6e 6b |ister Pi|xelChunk|
|00002fb0| 50 74 72 20 64 73 74 50 | 69 78 65 6c 50 2c 0d 09 |Ptr dstP|ixelP,..|
|00002fc0| 72 65 67 69 73 74 65 72 | 20 75 6e 73 69 67 6e 65 |register| unsigne|
|00002fd0| 64 20 6c 6f 6e 67 20 72 | 6f 77 73 54 6f 43 6f 70 |d long r|owsToCop|
|00002fe0| 79 2c 0d 09 72 65 67 69 | 73 74 65 72 20 75 6e 73 |y,..regi|ster uns|
|00002ff0| 69 67 6e 65 64 20 6c 6f | 6e 67 20 6e 75 6d 42 79 |igned lo|ng numBy|
|00003000| 74 65 73 50 65 72 52 6f | 77 2c 0d 09 72 65 67 69 |tesPerRo|w,..regi|
|00003010| 73 74 65 72 20 75 6e 73 | 69 67 6e 65 64 20 6c 6f |ster uns|igned lo|
|00003020| 6e 67 20 73 72 63 52 6f | 77 53 74 72 69 64 65 2c |ng srcRo|wStride,|
|00003030| 0d 09 72 65 67 69 73 74 | 65 72 20 75 6e 73 69 67 |..regist|er unsig|
|00003040| 6e 65 64 20 6c 6f 6e 67 | 20 64 73 74 52 6f 77 53 |ned long| dstRowS|
|00003050| 74 72 69 64 65 29 0d 7b | 0d 09 72 65 67 69 73 74 |tride).{|..regist|
|00003060| 65 72 20 6c 6f 6e 67 20 | 6c 6f 6f 70 73 50 65 72 |er long |loopsPer|
|00003070| 52 6f 77 3b 0d 09 72 65 | 67 69 73 74 65 72 20 6c |Row;..re|gister l|
|00003080| 6f 6e 67 20 65 78 74 72 | 61 50 69 78 65 6c 43 68 |ong extr|aPixelCh|
|00003090| 75 6e 6b 73 3b 0d 09 72 | 65 67 69 73 74 65 72 20 |unks;..r|egister |
|000030a0| 6c 6f 6e 67 20 70 69 78 | 65 6c 43 68 75 6e 6b 73 |long pix|elChunks|
|000030b0| 50 65 72 52 6f 77 3b 0d | 0d 09 70 69 78 65 6c 43 |PerRow;.|..pixelC|
|000030c0| 68 75 6e 6b 73 50 65 72 | 52 6f 77 20 3d 20 42 79 |hunksPer|Row = By|
|000030d0| 74 65 73 54 6f 43 68 75 | 6e 6b 73 28 6e 75 6d 42 |tesToChu|nks(numB|
|000030e0| 79 74 65 73 50 65 72 52 | 6f 77 29 3b 20 0d 09 65 |ytesPerR|ow); ..e|
|000030f0| 78 74 72 61 50 69 78 65 | 6c 43 68 75 6e 6b 73 20 |xtraPixe|lChunks |
|00003100| 3d 20 70 69 78 65 6c 43 | 68 75 6e 6b 73 50 65 72 |= pixelC|hunksPer|
|00003110| 52 6f 77 20 26 20 30 78 | 46 3b 09 09 0d 09 70 69 |Row & 0x|F;....pi|
|00003120| 78 65 6c 43 68 75 6e 6b | 73 50 65 72 52 6f 77 20 |xelChunk|sPerRow |
|00003130| 3e 3e 3d 20 34 3b 0d 0d | 09 77 68 69 6c 65 20 28 |>>= 4;..|.while (|
|00003140| 72 6f 77 73 54 6f 43 6f | 70 79 2d 2d 29 0d 09 7b |rowsToCo|py--)..{|
|00003150| 0d 09 09 09 2f 2f 20 77 | 65 20 72 65 75 73 65 20 |....// w|e reuse |
|00003160| 70 69 78 65 6c 43 68 75 | 6e 6b 73 50 65 72 52 6f |pixelChu|nksPerRo|
|00003170| 77 20 74 6f 20 72 65 73 | 74 6f 72 65 20 6c 6f 6f |w to res|tore loo|
|00003180| 70 73 50 65 72 52 6f 77 | 0d 09 09 6c 6f 6f 70 73 |psPerRow|...loops|
|00003190| 50 65 72 52 6f 77 20 3d | 20 70 69 78 65 6c 43 68 |PerRow =| pixelCh|
|000031a0| 75 6e 6b 73 50 65 72 52 | 6f 77 3b 0d 0d 09 09 09 |unksPerR|ow;.....|
|000031b0| 2f 2f 20 74 68 69 73 20 | 6d 61 6e 69 61 63 61 6c |// this |maniacal|
|000031c0| 2c 20 74 68 6f 75 67 68 | 20 65 78 74 72 65 6d 65 |, though| extreme|
|000031d0| 6c 79 20 63 6f 6e 76 65 | 6e 69 65 6e 74 20 62 69 |ly conve|nient bi|
|000031e0| 74 20 6f 66 20 43 20 63 | 6f 64 65 0d 09 09 09 2f |t of C c|ode..../|
|000031f0| 2f 20 69 73 20 61 20 44 | 75 66 66 2d 73 74 79 6c |/ is a D|uff-styl|
|00003200| 65 20 75 6e 72 6f 6c 6c | 65 64 20 6c 6f 6f 70 2c |e unroll|ed loop,|
|00003210| 20 61 6e 20 69 6e 76 65 | 6e 74 69 6f 6e 20 6f 66 | an inve|ntion of|
|00003220| 20 54 6f 6d 20 44 75 66 | 66 20 61 74 20 42 65 6c | Tom Duf|f at Bel|
|00003230| 6c 63 6f 72 65 2e 0d 09 | 09 09 2f 2f 20 49 27 76 |lcore...|..// I'v|
|00003240| 65 20 68 65 61 72 64 20 | 69 74 20 62 72 65 61 6b |e heard |it break|
|00003250| 73 20 73 6f 6d 65 20 63 | 6f 6d 70 69 6c 65 72 73 |s some c|ompilers|
|00003260| 2c 20 62 75 74 20 69 74 | 20 64 6f 65 73 20 68 61 |, but it| does ha|
|00003270| 76 65 0d 09 09 09 2f 2f | 09 44 65 6e 6e 69 73 20 |ve....//|.Dennis |
|00003280| 52 69 74 63 68 69 65 27 | 73 20 62 6c 65 73 73 69 |Ritchie'|s blessi|
|00003290| 6e 67 20 61 73 20 76 61 | 6c 69 64 20 43 20 63 6f |ng as va|lid C co|
|000032a0| 64 65 2e 0d 09 09 73 77 | 69 74 63 68 20 28 65 78 |de....sw|itch (ex|
|000032b0| 74 72 61 50 69 78 65 6c | 43 68 75 6e 6b 73 29 0d |traPixel|Chunks).|
|000032c0| 09 09 7b 0d 09 09 09 64 | 6f 0d 09 09 09 7b 0d 09 |..{....d|o....{..|
|000032d0| 09 09 09 09 09 09 42 6c | 69 74 50 69 78 65 6c 43 |......Bl|itPixelC|
|000032e0| 68 75 6e 6b 28 73 72 63 | 50 69 78 65 6c 50 2c 20 |hunk(src|PixelP, |
|000032f0| 64 73 74 50 69 78 65 6c | 50 29 3b 0d 09 09 09 09 |dstPixel|P);.....|
|00003300| 63 61 73 65 20 31 35 3a | 09 42 6c 69 74 50 69 78 |case 15:|.BlitPix|
|00003310| 65 6c 43 68 75 6e 6b 28 | 73 72 63 50 69 78 65 6c |elChunk(|srcPixel|
|00003320| 50 2c 20 64 73 74 50 69 | 78 65 6c 50 29 3b 0d 09 |P, dstPi|xelP);..|
|00003330| 09 09 09 63 61 73 65 20 | 31 34 3a 09 42 6c 69 74 |...case |14:.Blit|
|00003340| 50 69 78 65 6c 43 68 75 | 6e 6b 28 73 72 63 50 69 |PixelChu|nk(srcPi|
|00003350| 78 65 6c 50 2c 20 64 73 | 74 50 69 78 65 6c 50 29 |xelP, ds|tPixelP)|
|00003360| 3b 0d 09 09 09 09 63 61 | 73 65 20 31 33 3a 09 42 |;.....ca|se 13:.B|
|00003370| 6c 69 74 50 69 78 65 6c | 43 68 75 6e 6b 28 73 72 |litPixel|Chunk(sr|
|00003380| 63 50 69 78 65 6c 50 2c | 20 64 73 74 50 69 78 65 |cPixelP,| dstPixe|
|00003390| 6c 50 29 3b 0d 09 09 09 | 09 63 61 73 65 20 31 32 |lP);....|.case 12|
|000033a0| 3a 09 42 6c 69 74 50 69 | 78 65 6c 43 68 75 6e 6b |:.BlitPi|xelChunk|
|000033b0| 28 73 72 63 50 69 78 65 | 6c 50 2c 20 64 73 74 50 |(srcPixe|lP, dstP|
|000033c0| 69 78 65 6c 50 29 3b 0d | 09 09 09 09 63 61 73 65 |ixelP);.|....case|
|000033d0| 20 31 31 3a 09 42 6c 69 | 74 50 69 78 65 6c 43 68 | 11:.Bli|tPixelCh|
|000033e0| 75 6e 6b 28 73 72 63 50 | 69 78 65 6c 50 2c 20 64 |unk(srcP|ixelP, d|
|000033f0| 73 74 50 69 78 65 6c 50 | 29 3b 0d 09 09 09 09 63 |stPixelP|);.....c|
|00003400| 61 73 65 20 31 30 3a 09 | 42 6c 69 74 50 69 78 65 |ase 10:.|BlitPixe|
|00003410| 6c 43 68 75 6e 6b 28 73 | 72 63 50 69 78 65 6c 50 |lChunk(s|rcPixelP|
|00003420| 2c 20 64 73 74 50 69 78 | 65 6c 50 29 3b 0d 09 09 |, dstPix|elP);...|
|00003430| 09 09 63 61 73 65 20 39 | 3a 09 42 6c 69 74 50 69 |..case 9|:.BlitPi|
|00003440| 78 65 6c 43 68 75 6e 6b | 28 73 72 63 50 69 78 65 |xelChunk|(srcPixe|
|00003450| 6c 50 2c 20 64 73 74 50 | 69 78 65 6c 50 29 3b 0d |lP, dstP|ixelP);.|
|00003460| 09 09 09 09 63 61 73 65 | 20 38 3a 09 42 6c 69 74 |....case| 8:.Blit|
|00003470| 50 69 78 65 6c 43 68 75 | 6e 6b 28 73 72 63 50 69 |PixelChu|nk(srcPi|
|00003480| 78 65 6c 50 2c 20 64 73 | 74 50 69 78 65 6c 50 29 |xelP, ds|tPixelP)|
|00003490| 3b 0d 09 09 09 09 63 61 | 73 65 20 37 3a 09 42 6c |;.....ca|se 7:.Bl|
|000034a0| 69 74 50 69 78 65 6c 43 | 68 75 6e 6b 28 73 72 63 |itPixelC|hunk(src|
|000034b0| 50 69 78 65 6c 50 2c 20 | 64 73 74 50 69 78 65 6c |PixelP, |dstPixel|
|000034c0| 50 29 3b 0d 09 09 09 09 | 63 61 73 65 20 36 3a 09 |P);.....|case 6:.|
|000034d0| 42 6c 69 74 50 69 78 65 | 6c 43 68 75 6e 6b 28 73 |BlitPixe|lChunk(s|
|000034e0| 72 63 50 69 78 65 6c 50 | 2c 20 64 73 74 50 69 78 |rcPixelP|, dstPix|
|000034f0| 65 6c 50 29 3b 0d 09 09 | 09 09 63 61 73 65 20 35 |elP);...|..case 5|
|00003500| 3a 09 42 6c 69 74 50 69 | 78 65 6c 43 68 75 6e 6b |:.BlitPi|xelChunk|
|00003510| 28 73 72 63 50 69 78 65 | 6c 50 2c 20 64 73 74 50 |(srcPixe|lP, dstP|
|00003520| 69 78 65 6c 50 29 3b 0d | 09 09 09 09 63 61 73 65 |ixelP);.|....case|
|00003530| 20 34 3a 09 42 6c 69 74 | 50 69 78 65 6c 43 68 75 | 4:.Blit|PixelChu|
|00003540| 6e 6b 28 73 72 63 50 69 | 78 65 6c 50 2c 20 64 73 |nk(srcPi|xelP, ds|
|00003550| 74 50 69 78 65 6c 50 29 | 3b 0d 09 09 09 09 63 61 |tPixelP)|;.....ca|
|00003560| 73 65 20 33 3a 09 42 6c | 69 74 50 69 78 65 6c 43 |se 3:.Bl|itPixelC|
|00003570| 68 75 6e 6b 28 73 72 63 | 50 69 78 65 6c 50 2c 20 |hunk(src|PixelP, |
|00003580| 64 73 74 50 69 78 65 6c | 50 29 3b 0d 09 09 09 09 |dstPixel|P);.....|
|00003590| 63 61 73 65 20 32 3a 09 | 42 6c 69 74 50 69 78 65 |case 2:.|BlitPixe|
|000035a0| 6c 43 68 75 6e 6b 28 73 | 72 63 50 69 78 65 6c 50 |lChunk(s|rcPixelP|
|000035b0| 2c 20 64 73 74 50 69 78 | 65 6c 50 29 3b 0d 09 09 |, dstPix|elP);...|
|000035c0| 09 09 63 61 73 65 20 31 | 3a 09 42 6c 69 74 50 69 |..case 1|:.BlitPi|
|000035d0| 78 65 6c 43 68 75 6e 6b | 28 73 72 63 50 69 78 65 |xelChunk|(srcPixe|
|000035e0| 6c 50 2c 20 64 73 74 50 | 69 78 65 6c 50 29 3b 0d |lP, dstP|ixelP);.|
|000035f0| 09 09 09 09 63 61 73 65 | 20 30 3a 20 3b 0d 09 09 |....case| 0: ;...|
|00003600| 09 7d 20 77 68 69 6c 65 | 20 28 6c 6f 6f 70 73 50 |.} while| (loopsP|
|00003610| 65 72 52 6f 77 2d 2d 29 | 3b 0d 09 09 7d 0d 0d 09 |erRow--)|;...}...|
|00003620| 09 09 2f 2f 20 62 75 6d | 70 20 74 6f 20 74 68 65 |..// bum|p to the|
|00003630| 20 6e 65 78 74 20 72 6f | 77 0d 09 09 73 72 63 50 | next ro|w...srcP|
|00003640| 69 78 65 6c 50 20 3d 20 | 28 50 69 78 65 6c 43 68 |ixelP = |(PixelCh|
|00003650| 75 6e 6b 50 74 72 29 28 | 28 28 63 68 61 72 2a 29 |unkPtr)(|((char*)|
|00003660| 73 72 63 50 69 78 65 6c | 50 29 20 2b 20 73 72 63 |srcPixel|P) + src|
|00003670| 52 6f 77 53 74 72 69 64 | 65 29 3b 0d 09 09 64 73 |RowStrid|e);...ds|
|00003680| 74 50 69 78 65 6c 50 20 | 3d 20 28 50 69 78 65 6c |tPixelP |= (Pixel|
|00003690| 43 68 75 6e 6b 50 74 72 | 29 28 28 28 63 68 61 72 |ChunkPtr|)(((char|
|000036a0| 2a 29 64 73 74 50 69 78 | 65 6c 50 29 20 2b 20 64 |*)dstPix|elP) + d|
|000036b0| 73 74 52 6f 77 53 74 72 | 69 64 65 29 3b 0d 09 7d |stRowStr|ide);..}|
|000036c0| 0d 7d 0d 0d 0d 2f 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |.}...///|--------|
|000036d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 2f |--------|------./|
|00003720| 2f 09 09 42 6c 69 74 50 | 69 78 69 65 43 68 75 6e |/..BlitP|ixieChun|
|00003730| 6b 73 0d 2f 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ks.///--|--------|
|00003740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003760| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 0d 76 6f |--------|----..vo|
|00003790| 69 64 20 42 6c 69 74 50 | 69 78 69 65 43 68 75 6e |id BlitP|ixieChun|
|000037a0| 6b 73 28 0d 09 72 65 67 | 69 73 74 65 72 20 50 69 |ks(..reg|ister Pi|
|000037b0| 78 65 6c 43 68 75 6e 6b | 50 74 72 20 73 72 63 50 |xelChunk|Ptr srcP|
|000037c0| 69 78 65 6c 50 2c 0d 09 | 72 65 67 69 73 74 65 72 |ixelP,..|register|
|000037d0| 20 50 69 78 65 6c 43 68 | 75 6e 6b 50 74 72 20 64 | PixelCh|unkPtr d|
|000037e0| 73 74 50 69 78 65 6c 50 | 2c 0d 09 72 65 67 69 73 |stPixelP|,..regis|
|000037f0| 74 65 72 20 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |ter unsi|gned lon|
|00003800| 67 20 72 6f 77 73 54 6f | 43 6f 70 79 2c 0d 09 72 |g rowsTo|Copy,..r|
|00003810| 65 67 69 73 74 65 72 20 | 75 6e 73 69 67 6e 65 64 |egister |unsigned|
|00003820| 20 6c 6f 6e 67 20 70 69 | 78 65 6c 43 68 75 6e 6b | long pi|xelChunk|
|00003830| 73 50 65 72 52 6f 77 2c | 0d 09 72 65 67 69 73 74 |sPerRow,|..regist|
|00003840| 65 72 20 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |er unsig|ned long|
|00003850| 20 73 72 63 52 6f 77 53 | 74 72 69 64 65 2c 0d 09 | srcRowS|tride,..|
|00003860| 72 65 67 69 73 74 65 72 | 20 75 6e 73 69 67 6e 65 |register| unsigne|
|00003870| 64 20 6c 6f 6e 67 20 64 | 73 74 52 6f 77 53 74 72 |d long d|stRowStr|
|00003880| 69 64 65 29 0d 7b 0d 09 | 72 65 67 69 73 74 65 72 |ide).{..|register|
|00003890| 20 6c 6f 6e 67 20 6c 6f | 6f 70 73 50 65 72 52 6f | long lo|opsPerRo|
|000038a0| 77 3b 0d 09 72 65 67 69 | 73 74 65 72 20 6c 6f 6e |w;..regi|ster lon|
|000038b0| 67 20 65 78 74 72 61 50 | 69 78 65 6c 43 68 75 6e |g extraP|ixelChun|
|000038c0| 6b 73 3b 0d 0d 09 65 78 | 74 72 61 50 69 78 65 6c |ks;...ex|traPixel|
|000038d0| 43 68 75 6e 6b 73 20 3d | 20 70 69 78 65 6c 43 68 |Chunks =| pixelCh|
|000038e0| 75 6e 6b 73 50 65 72 52 | 6f 77 20 26 20 30 78 46 |unksPerR|ow & 0xF|
|000038f0| 3b 09 09 0d 09 70 69 78 | 65 6c 43 68 75 6e 6b 73 |;....pix|elChunks|
|00003900| 50 65 72 52 6f 77 20 3e | 3e 3d 20 34 3b 0d 0d 09 |PerRow >|>= 4;...|
|00003910| 77 68 69 6c 65 20 28 72 | 6f 77 73 54 6f 43 6f 70 |while (r|owsToCop|
|00003920| 79 2d 2d 29 0d 09 7b 0d | 09 09 09 2f 2f 20 77 65 |y--)..{.|...// we|
|00003930| 20 72 65 75 73 65 20 70 | 69 78 65 6c 43 68 75 6e | reuse p|ixelChun|
|00003940| 6b 73 50 65 72 52 6f 77 | 20 74 6f 20 72 65 73 74 |ksPerRow| to rest|
|00003950| 6f 72 65 20 6c 6f 6f 70 | 73 50 65 72 52 6f 77 0d |ore loop|sPerRow.|
|00003960| 09 09 6c 6f 6f 70 73 50 | 65 72 52 6f 77 20 3d 20 |..loopsP|erRow = |
|00003970| 70 69 78 65 6c 43 68 75 | 6e 6b 73 50 65 72 52 6f |pixelChu|nksPerRo|
|00003980| 77 3b 0d 0d 09 09 09 2f | 2f 20 74 68 69 73 20 6d |w;...../|/ this m|
|00003990| 61 6e 69 61 63 61 6c 2c | 20 74 68 6f 75 67 68 20 |aniacal,| though |
|000039a0| 65 78 74 72 65 6d 65 6c | 79 20 63 6f 6e 76 65 6e |extremel|y conven|
|000039b0| 69 65 6e 74 20 62 69 74 | 20 6f 66 20 43 20 63 6f |ient bit| of C co|
|000039c0| 64 65 0d 09 09 09 2f 2f | 20 69 73 20 61 20 44 75 |de....//| is a Du|
|000039d0| 66 66 2d 73 74 79 6c 65 | 20 75 6e 72 6f 6c 6c 65 |ff-style| unrolle|
|000039e0| 64 20 6c 6f 6f 70 2c 20 | 61 6e 20 69 6e 76 65 6e |d loop, |an inven|
|000039f0| 74 69 6f 6e 20 6f 66 20 | 54 6f 6d 20 44 75 66 66 |tion of |Tom Duff|
|00003a00| 20 61 74 20 42 65 6c 6c | 63 6f 72 65 2e 0d 09 09 | at Bell|core....|
|00003a10| 09 2f 2f 20 49 27 76 65 | 20 68 65 61 72 64 20 69 |.// I've| heard i|
|00003a20| 74 20 62 72 65 61 6b 73 | 20 73 6f 6d 65 20 63 6f |t breaks| some co|
|00003a30| 6d 70 69 6c 65 72 73 2c | 20 62 75 74 20 69 74 20 |mpilers,| but it |
|00003a40| 64 6f 65 73 20 68 61 76 | 65 0d 09 09 09 2f 2f 09 |does hav|e....//.|
|00003a50| 44 65 6e 6e 69 73 20 52 | 69 74 63 68 69 65 27 73 |Dennis R|itchie's|
|00003a60| 20 62 6c 65 73 73 69 6e | 67 20 61 73 20 76 61 6c | blessin|g as val|
|00003a70| 69 64 20 43 20 63 6f 64 | 65 2e 0d 09 09 73 77 69 |id C cod|e....swi|
|00003a80| 74 63 68 20 28 65 78 74 | 72 61 50 69 78 65 6c 43 |tch (ext|raPixelC|
|00003a90| 68 75 6e 6b 73 29 0d 09 | 09 7b 0d 09 09 09 64 6f |hunks)..|.{....do|
|00003aa0| 0d 09 09 09 7b 0d 09 09 | 09 09 09 09 09 42 6c 69 |....{...|.....Bli|
|00003ab0| 74 50 69 78 65 6c 43 68 | 75 6e 6b 28 73 72 63 50 |tPixelCh|unk(srcP|
|00003ac0| 69 78 65 6c 50 2c 20 64 | 73 74 50 69 78 65 6c 50 |ixelP, d|stPixelP|
|00003ad0| 29 3b 0d 09 09 09 09 63 | 61 73 65 20 31 35 3a 09 |);.....c|ase 15:.|
|00003ae0| 42 6c 69 74 50 69 78 65 | 6c 43 68 75 6e 6b 28 73 |BlitPixe|lChunk(s|
|00003af0| 72 63 50 69 78 65 6c 50 | 2c 20 64 73 74 50 69 78 |rcPixelP|, dstPix|
|00003b00| 65 6c 50 29 3b 0d 09 09 | 09 09 63 61 73 65 20 31 |elP);...|..case 1|
|00003b10| 34 3a 09 42 6c 69 74 50 | 69 78 65 6c 43 68 75 6e |4:.BlitP|ixelChun|
|00003b20| 6b 28 73 72 63 50 69 78 | 65 6c 50 2c 20 64 73 74 |k(srcPix|elP, dst|
|00003b30| 50 69 78 65 6c 50 29 3b | 0d 09 09 09 09 63 61 73 |PixelP);|.....cas|
|00003b40| 65 20 31 33 3a 09 42 6c | 69 74 50 69 78 65 6c 43 |e 13:.Bl|itPixelC|
|00003b50| 68 75 6e 6b 28 73 72 63 | 50 69 78 65 6c 50 2c 20 |hunk(src|PixelP, |
|00003b60| 64 73 74 50 69 78 65 6c | 50 29 3b 0d 09 09 09 09 |dstPixel|P);.....|
|00003b70| 63 61 73 65 20 31 32 3a | 09 42 6c 69 74 50 69 78 |case 12:|.BlitPix|
|00003b80| 65 6c 43 68 75 6e 6b 28 | 73 72 63 50 69 78 65 6c |elChunk(|srcPixel|
|00003b90| 50 2c 20 64 73 74 50 69 | 78 65 6c 50 29 3b 0d 09 |P, dstPi|xelP);..|
|00003ba0| 09 09 09 63 61 73 65 20 | 31 31 3a 09 42 6c 69 74 |...case |11:.Blit|
|00003bb0| 50 69 78 65 6c 43 68 75 | 6e 6b 28 73 72 63 50 69 |PixelChu|nk(srcPi|
|00003bc0| 78 65 6c 50 2c 20 64 73 | 74 50 69 78 65 6c 50 29 |xelP, ds|tPixelP)|
|00003bd0| 3b 0d 09 09 09 09 63 61 | 73 65 20 31 30 3a 09 42 |;.....ca|se 10:.B|
|00003be0| 6c 69 74 50 69 78 65 6c | 43 68 75 6e 6b 28 73 72 |litPixel|Chunk(sr|
|00003bf0| 63 50 69 78 65 6c 50 2c | 20 64 73 74 50 69 78 65 |cPixelP,| dstPixe|
|00003c00| 6c 50 29 3b 0d 09 09 09 | 09 63 61 73 65 20 39 3a |lP);....|.case 9:|
|00003c10| 09 42 6c 69 74 50 69 78 | 65 6c 43 68 75 6e 6b 28 |.BlitPix|elChunk(|
|00003c20| 73 72 63 50 69 78 65 6c | 50 2c 20 64 73 74 50 69 |srcPixel|P, dstPi|
|00003c30| 78 65 6c 50 29 3b 0d 09 | 09 09 09 63 61 73 65 20 |xelP);..|...case |
|00003c40| 38 3a 09 42 6c 69 74 50 | 69 78 65 6c 43 68 75 6e |8:.BlitP|ixelChun|
|00003c50| 6b 28 73 72 63 50 69 78 | 65 6c 50 2c 20 64 73 74 |k(srcPix|elP, dst|
|00003c60| 50 69 78 65 6c 50 29 3b | 0d 09 09 09 09 63 61 73 |PixelP);|.....cas|
|00003c70| 65 20 37 3a 09 42 6c 69 | 74 50 69 78 65 6c 43 68 |e 7:.Bli|tPixelCh|
|00003c80| 75 6e 6b 28 73 72 63 50 | 69 78 65 6c 50 2c 20 64 |unk(srcP|ixelP, d|
|00003c90| 73 74 50 69 78 65 6c 50 | 29 3b 0d 09 09 09 09 63 |stPixelP|);.....c|
|00003ca0| 61 73 65 20 36 3a 09 42 | 6c 69 74 50 69 78 65 6c |ase 6:.B|litPixel|
|00003cb0| 43 68 75 6e 6b 28 73 72 | 63 50 69 78 65 6c 50 2c |Chunk(sr|cPixelP,|
|00003cc0| 20 64 73 74 50 69 78 65 | 6c 50 29 3b 0d 09 09 09 | dstPixe|lP);....|
|00003cd0| 09 63 61 73 65 20 35 3a | 09 42 6c 69 74 50 69 78 |.case 5:|.BlitPix|
|00003ce0| 65 6c 43 68 75 6e 6b 28 | 73 72 63 50 69 78 65 6c |elChunk(|srcPixel|
|00003cf0| 50 2c 20 64 73 74 50 69 | 78 65 6c 50 29 3b 0d 09 |P, dstPi|xelP);..|
|00003d00| 09 09 09 63 61 73 65 20 | 34 3a 09 42 6c 69 74 50 |...case |4:.BlitP|
|00003d10| 69 78 65 6c 43 68 75 6e | 6b 28 73 72 63 50 69 78 |ixelChun|k(srcPix|
|00003d20| 65 6c 50 2c 20 64 73 74 | 50 69 78 65 6c 50 29 3b |elP, dst|PixelP);|
|00003d30| 0d 09 09 09 09 63 61 73 | 65 20 33 3a 09 42 6c 69 |.....cas|e 3:.Bli|
|00003d40| 74 50 69 78 65 6c 43 68 | 75 6e 6b 28 73 72 63 50 |tPixelCh|unk(srcP|
|00003d50| 69 78 65 6c 50 2c 20 64 | 73 74 50 69 78 65 6c 50 |ixelP, d|stPixelP|
|00003d60| 29 3b 0d 09 09 09 09 63 | 61 73 65 20 32 3a 09 42 |);.....c|ase 2:.B|
|00003d70| 6c 69 74 50 69 78 65 6c | 43 68 75 6e 6b 28 73 72 |litPixel|Chunk(sr|
|00003d80| 63 50 69 78 65 6c 50 2c | 20 64 73 74 50 69 78 65 |cPixelP,| dstPixe|
|00003d90| 6c 50 29 3b 0d 09 09 09 | 09 63 61 73 65 20 31 3a |lP);....|.case 1:|
|00003da0| 09 42 6c 69 74 50 69 78 | 65 6c 43 68 75 6e 6b 28 |.BlitPix|elChunk(|
|00003db0| 73 72 63 50 69 78 65 6c | 50 2c 20 64 73 74 50 69 |srcPixel|P, dstPi|
|00003dc0| 78 65 6c 50 29 3b 0d 09 | 09 09 09 63 61 73 65 20 |xelP);..|...case |
|00003dd0| 30 3a 20 3b 0d 09 09 09 | 7d 20 77 68 69 6c 65 20 |0: ;....|} while |
|00003de0| 28 6c 6f 6f 70 73 50 65 | 72 52 6f 77 2d 2d 29 3b |(loopsPe|rRow--);|
|00003df0| 0d 09 09 7d 0d 0d 09 09 | 09 2f 2f 20 62 75 6d 70 |...}....|.// bump|
|00003e00| 20 74 6f 20 74 68 65 20 | 6e 65 78 74 20 72 6f 77 | to the |next row|
|00003e10| 0d 09 09 73 72 63 50 69 | 78 65 6c 50 20 3d 20 28 |...srcPi|xelP = (|
|00003e20| 50 69 78 65 6c 43 68 75 | 6e 6b 50 74 72 29 28 28 |PixelChu|nkPtr)((|
|00003e30| 28 63 68 61 72 2a 29 73 | 72 63 50 69 78 65 6c 50 |(char*)s|rcPixelP|
|00003e40| 29 20 2b 20 73 72 63 52 | 6f 77 53 74 72 69 64 65 |) + srcR|owStride|
|00003e50| 29 3b 0d 09 09 64 73 74 | 50 69 78 65 6c 50 20 3d |);...dst|PixelP =|
|00003e60| 20 28 50 69 78 65 6c 43 | 68 75 6e 6b 50 74 72 29 | (PixelC|hunkPtr)|
|00003e70| 28 28 28 63 68 61 72 2a | 29 64 73 74 50 69 78 65 |(((char*|)dstPixe|
|00003e80| 6c 50 29 20 2b 20 64 73 | 74 52 6f 77 53 74 72 69 |lP) + ds|tRowStri|
|00003e90| 64 65 29 3b 0d 09 7d 0d | 7d 0d 0d 0d 2f 2f 2f 2d |de);..}.|}...///-|
|00003ea0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ef0| 2d 2d 2d 2d 2d 0d 2f 2f | 09 09 42 6c 69 74 50 69 |-----.//|..BlitPi|
|00003f00| 78 69 65 4d 61 73 6b 0d | 2f 2f 2f 2d 2d 2d 2d 2d |xieMask.|///-----|
|00003f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f60| 2d 0d 0d 76 6f 69 64 20 | 42 6c 69 74 50 69 78 69 |-..void |BlitPixi|
|00003f70| 65 4d 61 73 6b 28 0d 09 | 72 65 67 69 73 74 65 72 |eMask(..|register|
|00003f80| 20 50 69 78 65 6c 50 74 | 72 20 73 72 63 50 69 78 | PixelPt|r srcPix|
|00003f90| 65 6c 50 2c 0d 09 72 65 | 67 69 73 74 65 72 20 50 |elP,..re|gister P|
|00003fa0| 69 78 65 6c 50 74 72 20 | 64 73 74 50 69 78 65 6c |ixelPtr |dstPixel|
|00003fb0| 50 2c 0d 09 72 65 67 69 | 73 74 65 72 20 50 69 78 |P,..regi|ster Pix|
|00003fc0| 65 6c 50 74 72 20 6d 61 | 73 6b 50 69 78 65 6c 50 |elPtr ma|skPixelP|
|00003fd0| 2c 0d 09 72 65 67 69 73 | 74 65 72 20 75 6e 73 69 |,..regis|ter unsi|
|00003fe0| 67 6e 65 64 20 6c 6f 6e | 67 20 72 6f 77 73 54 6f |gned lon|g rowsTo|
|00003ff0| 43 6f 70 79 2c 0d 09 72 | 65 67 69 73 74 65 72 20 |Copy,..r|egister |
|00004000| 75 6e 73 69 67 6e 65 64 | 20 6c 6f 6e 67 20 6c 6f |unsigned| long lo|
|00004010| 6e 67 57 6f 72 64 73 50 | 65 72 52 6f 77 2c 09 09 |ngWordsP|erRow,..|
|00004020| 2f 2f 20 74 68 69 73 20 | 69 73 20 72 65 61 6c 6c |// this |is reall|
|00004030| 79 20 6e 75 6d 42 79 74 | 65 73 50 65 72 52 6f 77 |y numByt|esPerRow|
|00004040| 0d 09 72 65 67 69 73 74 | 65 72 20 75 6e 73 69 67 |..regist|er unsig|
|00004050| 6e 65 64 20 6c 6f 6e 67 | 20 73 72 63 52 6f 77 53 |ned long| srcRowS|
|00004060| 74 72 69 64 65 2c 0d 09 | 72 65 67 69 73 74 65 72 |tride,..|register|
|00004070| 20 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 20 64 | unsigne|d long d|
|00004080| 73 74 52 6f 77 53 74 72 | 69 64 65 29 0d 7b 0d 09 |stRowStr|ide).{..|
|00004090| 72 65 67 69 73 74 65 72 | 20 6c 6f 6e 67 20 6c 6f |register| long lo|
|000040a0| 6f 70 73 50 65 72 52 6f | 77 3b 0d 09 72 65 67 69 |opsPerRo|w;..regi|
|000040b0| 73 74 65 72 20 6c 6f 6e | 67 20 65 78 74 72 61 50 |ster lon|g extraP|
|000040c0| 69 78 65 6c 4c 6f 6e 67 | 73 3b 0d 0d 09 6c 6f 6e |ixelLong|s;...lon|
|000040d0| 67 57 6f 72 64 73 50 65 | 72 52 6f 77 20 3e 3e 3d |gWordsPe|rRow >>=|
|000040e0| 20 32 3b 0d 09 65 78 74 | 72 61 50 69 78 65 6c 4c | 2;..ext|raPixelL|
|000040f0| 6f 6e 67 73 20 3d 20 6c | 6f 6e 67 57 6f 72 64 73 |ongs = l|ongWords|
|00004100| 50 65 72 52 6f 77 20 26 | 20 30 78 46 3b 0d 09 6c |PerRow &| 0xF;..l|
|00004110| 6f 6e 67 57 6f 72 64 73 | 50 65 72 52 6f 77 20 3e |ongWords|PerRow >|
|00004120| 3e 3d 20 34 3b 0d 0d 09 | 77 68 69 6c 65 20 28 72 |>= 4;...|while (r|
|00004130| 6f 77 73 54 6f 43 6f 70 | 79 2d 2d 29 0d 09 7b 0d |owsToCop|y--)..{.|
|00004140| 09 09 6c 6f 6f 70 73 50 | 65 72 52 6f 77 20 3d 20 |..loopsP|erRow = |
|00004150| 6c 6f 6e 67 57 6f 72 64 | 73 50 65 72 52 6f 77 3b |longWord|sPerRow;|
|00004160| 0d 0d 09 09 09 2f 2f 20 | 74 68 69 73 20 6d 61 6e |.....// |this man|
|00004170| 69 61 63 61 6c 2c 20 74 | 68 6f 75 67 68 20 65 78 |iacal, t|hough ex|
|00004180| 74 72 65 6d 65 6c 79 20 | 63 6f 6e 76 65 6e 69 65 |tremely |convenie|
|00004190| 6e 74 20 62 69 74 20 6f | 66 20 43 20 63 6f 64 65 |nt bit o|f C code|
|000041a0| 0d 09 09 09 2f 2f 20 69 | 73 20 61 20 44 75 66 66 |....// i|s a Duff|
|000041b0| 2d 73 74 79 6c 65 20 75 | 6e 72 6f 6c 6c 65 64 20 |-style u|nrolled |
|000041c0| 6c 6f 6f 70 2c 20 61 6e | 20 69 6e 76 65 6e 74 69 |loop, an| inventi|
|000041d0| 6f 6e 20 6f 66 20 54 6f | 6d 20 44 75 66 66 20 61 |on of To|m Duff a|
|000041e0| 74 20 42 65 6c 6c 63 6f | 72 65 2e 0d 09 09 09 2f |t Bellco|re...../|
|000041f0| 2f 20 49 27 76 65 20 68 | 65 61 72 64 20 69 74 20 |/ I've h|eard it |
|00004200| 62 72 65 61 6b 73 20 73 | 6f 6d 65 20 63 6f 6d 70 |breaks s|ome comp|
|00004210| 69 6c 65 72 73 2c 20 62 | 75 74 20 69 74 20 64 6f |ilers, b|ut it do|
|00004220| 65 73 20 68 61 76 65 0d | 09 09 09 2f 2f 09 44 65 |es have.|...//.De|
|00004230| 6e 6e 69 73 20 52 69 74 | 63 68 69 65 27 73 20 62 |nnis Rit|chie's b|
|00004240| 6c 65 73 73 69 6e 67 20 | 61 73 20 76 61 6c 69 64 |lessing |as valid|
|00004250| 20 43 20 63 6f 64 65 2e | 0d 09 09 73 77 69 74 63 | C code.|...switc|
|00004260| 68 20 28 65 78 74 72 61 | 50 69 78 65 6c 4c 6f 6e |h (extra|PixelLon|
|00004270| 67 73 29 0d 09 09 7b 0d | 09 09 09 64 6f 0d 09 09 |gs)...{.|...do...|
|00004280| 09 7b 0d 09 09 09 09 09 | 09 09 42 6c 69 74 50 69 |.{......|..BlitPi|
|00004290| 78 65 6c 4c 6f 6e 67 4d | 61 73 6b 28 73 72 63 50 |xelLongM|ask(srcP|
|000042a0| 69 78 65 6c 50 2c 20 64 | 73 74 50 69 78 65 6c 50 |ixelP, d|stPixelP|
|000042b0| 2c 20 6d 61 73 6b 50 69 | 78 65 6c 50 29 3b 0d 09 |, maskPi|xelP);..|
|000042c0| 09 09 09 63 61 73 65 20 | 31 35 3a 09 42 6c 69 74 |...case |15:.Blit|
|000042d0| 50 69 78 65 6c 4c 6f 6e | 67 4d 61 73 6b 28 73 72 |PixelLon|gMask(sr|
|000042e0| 63 50 69 78 65 6c 50 2c | 20 64 73 74 50 69 78 65 |cPixelP,| dstPixe|
|000042f0| 6c 50 2c 20 6d 61 73 6b | 50 69 78 65 6c 50 29 3b |lP, mask|PixelP);|
|00004300| 0d 09 09 09 09 63 61 73 | 65 20 31 34 3a 09 42 6c |.....cas|e 14:.Bl|
|00004310| 69 74 50 69 78 65 6c 4c | 6f 6e 67 4d 61 73 6b 28 |itPixelL|ongMask(|
|00004320| 73 72 63 50 69 78 65 6c | 50 2c 20 64 73 74 50 69 |srcPixel|P, dstPi|
|00004330| 78 65 6c 50 2c 20 6d 61 | 73 6b 50 69 78 65 6c 50 |xelP, ma|skPixelP|
|00004340| 29 3b 0d 09 09 09 09 63 | 61 73 65 20 31 33 3a 09 |);.....c|ase 13:.|
|00004350| 42 6c 69 74 50 69 78 65 | 6c 4c 6f 6e 67 4d 61 73 |BlitPixe|lLongMas|
|00004360| 6b 28 73 72 63 50 69 78 | 65 6c 50 2c 20 64 73 74 |k(srcPix|elP, dst|
|00004370| 50 69 78 65 6c 50 2c 20 | 6d 61 73 6b 50 69 78 65 |PixelP, |maskPixe|
|00004380| 6c 50 29 3b 0d 09 09 09 | 09 63 61 73 65 20 31 32 |lP);....|.case 12|
|00004390| 3a 09 42 6c 69 74 50 69 | 78 65 6c 4c 6f 6e 67 4d |:.BlitPi|xelLongM|
|000043a0| 61 73 6b 28 73 72 63 50 | 69 78 65 6c 50 2c 20 64 |ask(srcP|ixelP, d|
|000043b0| 73 74 50 69 78 65 6c 50 | 2c 20 6d 61 73 6b 50 69 |stPixelP|, maskPi|
|000043c0| 78 65 6c 50 29 3b 0d 09 | 09 09 09 63 61 73 65 20 |xelP);..|...case |
|000043d0| 31 31 3a 09 42 6c 69 74 | 50 69 78 65 6c 4c 6f 6e |11:.Blit|PixelLon|
|000043e0| 67 4d 61 73 6b 28 73 72 | 63 50 69 78 65 6c 50 2c |gMask(sr|cPixelP,|
|000043f0| 20 64 73 74 50 69 78 65 | 6c 50 2c 20 6d 61 73 6b | dstPixe|lP, mask|
|00004400| 50 69 78 65 6c 50 29 3b | 0d 09 09 09 09 63 61 73 |PixelP);|.....cas|
|00004410| 65 20 31 30 3a 09 42 6c | 69 74 50 69 78 65 6c 4c |e 10:.Bl|itPixelL|
|00004420| 6f 6e 67 4d 61 73 6b 28 | 73 72 63 50 69 78 65 6c |ongMask(|srcPixel|
|00004430| 50 2c 20 64 73 74 50 69 | 78 65 6c 50 2c 20 6d 61 |P, dstPi|xelP, ma|
|00004440| 73 6b 50 69 78 65 6c 50 | 29 3b 0d 09 09 09 09 63 |skPixelP|);.....c|
|00004450| 61 73 65 20 39 3a 09 42 | 6c 69 74 50 69 78 65 6c |ase 9:.B|litPixel|
|00004460| 4c 6f 6e 67 4d 61 73 6b | 28 73 72 63 50 69 78 65 |LongMask|(srcPixe|
|00004470| 6c 50 2c 20 64 73 74 50 | 69 78 65 6c 50 2c 20 6d |lP, dstP|ixelP, m|
|00004480| 61 73 6b 50 69 78 65 6c | 50 29 3b 0d 09 09 09 09 |askPixel|P);.....|
|00004490| 63 61 73 65 20 38 3a 09 | 42 6c 69 74 50 69 78 65 |case 8:.|BlitPixe|
|000044a0| 6c 4c 6f 6e 67 4d 61 73 | 6b 28 73 72 63 50 69 78 |lLongMas|k(srcPix|
|000044b0| 65 6c 50 2c 20 64 73 74 | 50 69 78 65 6c 50 2c 20 |elP, dst|PixelP, |
|000044c0| 6d 61 73 6b 50 69 78 65 | 6c 50 29 3b 0d 09 09 09 |maskPixe|lP);....|
|000044d0| 09 63 61 73 65 20 37 3a | 09 42 6c 69 74 50 69 78 |.case 7:|.BlitPix|
|000044e0| 65 6c 4c 6f 6e 67 4d 61 | 73 6b 28 73 72 63 50 69 |elLongMa|sk(srcPi|
|000044f0| 78 65 6c 50 2c 20 64 73 | 74 50 69 78 65 6c 50 2c |xelP, ds|tPixelP,|
|00004500| 20 6d 61 73 6b 50 69 78 | 65 6c 50 29 3b 0d 09 09 | maskPix|elP);...|
|00004510| 09 09 63 61 73 65 20 36 | 3a 09 42 6c 69 74 50 69 |..case 6|:.BlitPi|
|00004520| 78 65 6c 4c 6f 6e 67 4d | 61 73 6b 28 73 72 63 50 |xelLongM|ask(srcP|
|00004530| 69 78 65 6c 50 2c 20 64 | 73 74 50 69 78 65 6c 50 |ixelP, d|stPixelP|
|00004540| 2c 20 6d 61 73 6b 50 69 | 78 65 6c 50 29 3b 0d 09 |, maskPi|xelP);..|
|00004550| 09 09 09 63 61 73 65 20 | 35 3a 09 42 6c 69 74 50 |...case |5:.BlitP|
|00004560| 69 78 65 6c 4c 6f 6e 67 | 4d 61 73 6b 28 73 72 63 |ixelLong|Mask(src|
|00004570| 50 69 78 65 6c 50 2c 20 | 64 73 74 50 69 78 65 6c |PixelP, |dstPixel|
|00004580| 50 2c 20 6d 61 73 6b 50 | 69 78 65 6c 50 29 3b 0d |P, maskP|ixelP);.|
|00004590| 09 09 09 09 63 61 73 65 | 20 34 3a 09 42 6c 69 74 |....case| 4:.Blit|
|000045a0| 50 69 78 65 6c 4c 6f 6e | 67 4d 61 73 6b 28 73 72 |PixelLon|gMask(sr|
|000045b0| 63 50 69 78 65 6c 50 2c | 20 64 73 74 50 69 78 65 |cPixelP,| dstPixe|
|000045c0| 6c 50 2c 20 6d 61 73 6b | 50 69 78 65 6c 50 29 3b |lP, mask|PixelP);|
|000045d0| 0d 09 09 09 09 63 61 73 | 65 20 33 3a 09 42 6c 69 |.....cas|e 3:.Bli|
|000045e0| 74 50 69 78 65 6c 4c 6f | 6e 67 4d 61 73 6b 28 73 |tPixelLo|ngMask(s|
|000045f0| 72 63 50 69 78 65 6c 50 | 2c 20 64 73 74 50 69 78 |rcPixelP|, dstPix|
|00004600| 65 6c 50 2c 20 6d 61 73 | 6b 50 69 78 65 6c 50 29 |elP, mas|kPixelP)|
|00004610| 3b 0d 09 09 09 09 63 61 | 73 65 20 32 3a 09 42 6c |;.....ca|se 2:.Bl|
|00004620| 69 74 50 69 78 65 6c 4c | 6f 6e 67 4d 61 73 6b 28 |itPixelL|ongMask(|
|00004630| 73 72 63 50 69 78 65 6c | 50 2c 20 64 73 74 50 69 |srcPixel|P, dstPi|
|00004640| 78 65 6c 50 2c 20 6d 61 | 73 6b 50 69 78 65 6c 50 |xelP, ma|skPixelP|
|00004650| 29 3b 0d 09 09 09 09 63 | 61 73 65 20 31 3a 09 42 |);.....c|ase 1:.B|
|00004660| 6c 69 74 50 69 78 65 6c | 4c 6f 6e 67 4d 61 73 6b |litPixel|LongMask|
|00004670| 28 73 72 63 50 69 78 65 | 6c 50 2c 20 64 73 74 50 |(srcPixe|lP, dstP|
|00004680| 69 78 65 6c 50 2c 20 6d | 61 73 6b 50 69 78 65 6c |ixelP, m|askPixel|
|00004690| 50 29 3b 0d 09 09 09 09 | 63 61 73 65 20 30 3a 20 |P);.....|case 0: |
|000046a0| 3b 0d 09 09 09 7d 20 77 | 68 69 6c 65 20 28 6c 6f |;....} w|hile (lo|
|000046b0| 6f 70 73 50 65 72 52 6f | 77 2d 2d 29 3b 0d 09 09 |opsPerRo|w--);...|
|000046c0| 7d 0d 0d 09 09 09 2f 2f | 20 62 75 6d 70 20 74 6f |}.....//| bump to|
|000046d0| 20 74 68 65 20 6e 65 78 | 74 20 72 6f 77 0d 09 09 | the nex|t row...|
|000046e0| 73 72 63 50 69 78 65 6c | 50 20 3d 20 28 50 69 78 |srcPixel|P = (Pix|
|000046f0| 65 6c 50 74 72 29 28 28 | 28 75 6e 73 69 67 6e 65 |elPtr)((|(unsigne|
|00004700| 64 20 63 68 61 72 2a 29 | 73 72 63 50 69 78 65 6c |d char*)|srcPixel|
|00004710| 50 29 20 2b 20 73 72 63 | 52 6f 77 53 74 72 69 64 |P) + src|RowStrid|
|00004720| 65 29 3b 0d 09 09 6d 61 | 73 6b 50 69 78 65 6c 50 |e);...ma|skPixelP|
|00004730| 20 3d 20 28 50 69 78 65 | 6c 50 74 72 29 28 28 28 | = (Pixe|lPtr)(((|
|00004740| 75 6e 73 69 67 6e 65 64 | 20 63 68 61 72 2a 29 6d |unsigned| char*)m|
|00004750| 61 73 6b 50 69 78 65 6c | 50 29 20 2b 20 73 72 63 |askPixel|P) + src|
|00004760| 52 6f 77 53 74 72 69 64 | 65 29 3b 0d 09 09 64 73 |RowStrid|e);...ds|
|00004770| 74 50 69 78 65 6c 50 20 | 3d 20 28 50 69 78 65 6c |tPixelP |= (Pixel|
|00004780| 50 74 72 29 28 28 28 75 | 6e 73 69 67 6e 65 64 20 |Ptr)(((u|nsigned |
|00004790| 63 68 61 72 2a 29 64 73 | 74 50 69 78 65 6c 50 29 |char*)ds|tPixelP)|
|000047a0| 20 2b 20 64 73 74 52 6f | 77 53 74 72 69 64 65 29 | + dstRo|wStride)|
|000047b0| 3b 0d 09 7d 0d 7d 0d 0d | 0d 23 65 6c 73 65 20 2f |;..}.}..|.#else /|
|000047c0| 2a 20 53 57 5f 55 53 45 | 5f 43 20 2a 2f 0d 0d 0d |* SW_USE|_C */...|
|000047d0| 2f 2f 2f 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |///-----|--------|
|000047e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000047f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 09 09 42 6c |--------|-.//..Bl|
|00004830| 69 74 50 69 78 69 65 0d | 2f 2f 2f 2d 2d 2d 2d 2d |itPixie.|///-----|
|00004840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004890| 2d 0d 0d 53 57 5f 41 53 | 4d 5f 46 55 4e 43 20 76 |-..SW_AS|M_FUNC v|
|000048a0| 6f 69 64 20 42 6c 69 74 | 50 69 78 69 65 28 0d 09 |oid Blit|Pixie(..|
|000048b0| 72 65 67 69 73 74 65 72 | 20 50 69 78 65 6c 50 74 |register| PixelPt|
|000048c0| 72 20 73 72 63 50 69 78 | 65 6c 50 2c 0d 09 72 65 |r srcPix|elP,..re|
|000048d0| 67 69 73 74 65 72 20 50 | 69 78 65 6c 50 74 72 20 |gister P|ixelPtr |
|000048e0| 64 73 74 50 69 78 65 6c | 50 2c 0d 09 72 65 67 69 |dstPixel|P,..regi|
|000048f0| 73 74 65 72 20 75 6e 73 | 69 67 6e 65 64 20 6c 6f |ster uns|igned lo|
|00004900| 6e 67 20 72 6f 77 73 54 | 6f 43 6f 70 79 2c 0d 09 |ng rowsT|oCopy,..|
|00004910| 72 65 67 69 73 74 65 72 | 20 75 6e 73 69 67 6e 65 |register| unsigne|
|00004920| 64 20 6c 6f 6e 67 20 6e | 75 6d 42 79 74 65 73 50 |d long n|umBytesP|
|00004930| 65 72 52 6f 77 2c 0d 09 | 72 65 67 69 73 74 65 72 |erRow,..|register|
|00004940| 20 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 20 73 | unsigne|d long s|
|00004950| 72 63 52 6f 77 53 74 72 | 69 64 65 2c 0d 09 72 65 |rcRowStr|ide,..re|
|00004960| 67 69 73 74 65 72 20 75 | 6e 73 69 67 6e 65 64 20 |gister u|nsigned |
|00004970| 6c 6f 6e 67 20 64 73 74 | 52 6f 77 53 74 72 69 64 |long dst|RowStrid|
|00004980| 65 29 0d 7b 0d 09 72 65 | 67 69 73 74 65 72 20 75 |e).{..re|gister u|
|00004990| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 6c 6f 6f |nsigned |long loo|
|000049a0| 70 73 50 65 72 52 6f 77 | 3b 0d 0d 09 09 53 57 5f |psPerRow|;....SW_|
|000049b0| 41 53 4d 5f 42 45 47 49 | 4e 0d 0d 23 69 66 20 5f |ASM_BEGI|N..#if _|
|000049c0| 5f 4d 57 45 52 4b 53 5f | 5f 0d 09 09 6d 6f 76 65 |_MWERKS_|_...move|
|000049d0| 6d 2e 6c 09 09 09 6c 6f | 6f 70 73 50 65 72 52 6f |m.l...lo|opsPerRo|
|000049e0| 77 2f 73 72 63 50 69 78 | 65 6c 50 2f 64 73 74 50 |w/srcPix|elP/dstP|
|000049f0| 69 78 65 6c 50 2f 72 6f | 77 73 54 6f 43 6f 70 79 |ixelP/ro|wsToCopy|
|00004a00| 2f 6e 75 6d 42 79 74 65 | 73 50 65 72 52 6f 77 2f |/numByte|sPerRow/|
|00004a10| 73 72 63 52 6f 77 53 74 | 72 69 64 65 2f 64 73 74 |srcRowSt|ride/dst|
|00004a20| 52 6f 77 53 74 72 69 64 | 65 2c 20 2d 28 73 70 29 |RowStrid|e, -(sp)|
|00004a30| 0d 0d 09 09 09 2f 2f 20 | 6d 6f 76 65 20 74 68 65 |.....// |move the|
|00004a40| 20 70 61 72 61 6d 65 74 | 65 72 73 20 69 6e 74 6f | paramet|ers into|
|00004a50| 20 72 65 67 69 73 74 65 | 72 73 0d 09 09 6d 6f 76 | registe|rs...mov|
|00004a60| 65 61 2e 6c 09 09 09 32 | 38 28 73 70 29 2c 20 73 |ea.l...2|8(sp), s|
|00004a70| 72 63 50 69 78 65 6c 50 | 0d 09 09 6d 6f 76 65 61 |rcPixelP|...movea|
|00004a80| 2e 6c 09 09 09 33 32 28 | 73 70 29 2c 20 64 73 74 |.l...32(|sp), dst|
|00004a90| 50 69 78 65 6c 50 0d 09 | 09 6d 6f 76 65 2e 6c 09 |PixelP..|.move.l.|
|00004aa0| 09 09 33 36 28 73 70 29 | 2c 20 72 6f 77 73 54 6f |..36(sp)|, rowsTo|
|00004ab0| 43 6f 70 79 0d 09 09 6d | 6f 76 65 2e 6c 09 09 09 |Copy...m|ove.l...|
|00004ac0| 34 30 28 73 70 29 2c 20 | 6e 75 6d 42 79 74 65 73 |40(sp), |numBytes|
|00004ad0| 50 65 72 52 6f 77 0d 09 | 09 6d 6f 76 65 2e 6c 09 |PerRow..|.move.l.|
|00004ae0| 09 09 34 34 28 73 70 29 | 2c 20 73 72 63 52 6f 77 |..44(sp)|, srcRow|
|00004af0| 53 74 72 69 64 65 0d 09 | 09 6d 6f 76 65 2e 6c 09 |Stride..|.move.l.|
|00004b00| 09 09 34 38 28 73 70 29 | 2c 20 64 73 74 52 6f 77 |..48(sp)|, dstRow|
|00004b10| 53 74 72 69 64 65 0d 23 | 65 6e 64 69 66 0d 0d 09 |Stride.#|endif...|
|00004b20| 09 09 2f 2f 20 6c 6f 6e | 67 57 6f 72 64 73 50 65 |..// lon|gWordsPe|
|00004b30| 72 52 6f 77 20 3d 20 6e | 75 6d 42 79 74 65 73 50 |rRow = n|umBytesP|
|00004b40| 65 72 52 6f 77 20 3e 3e | 20 32 3b 0d 09 09 6d 6f |erRow >>| 2;...mo|
|00004b50| 76 65 2e 6c 09 6e 75 6d | 42 79 74 65 73 50 65 72 |ve.l.num|BytesPer|
|00004b60| 52 6f 77 2c 20 64 30 0d | 09 09 6c 73 72 2e 6c 09 |Row, d0.|..lsr.l.|
|00004b70| 09 23 32 2c 20 64 30 0d | 0d 09 09 09 2f 2f 20 6e |.#2, d0.|....// n|
|00004b80| 75 6d 42 79 74 65 73 50 | 65 72 52 6f 77 20 2d 3d |umBytesP|erRow -=|
|00004b90| 20 6c 6f 6e 67 57 6f 72 | 64 73 50 65 72 52 6f 77 | longWor|dsPerRow|
|00004ba0| 20 3c 3c 20 32 3b 0d 09 | 09 6d 6f 76 65 2e 6c 09 | << 2;..|.move.l.|
|00004bb0| 64 30 2c 20 64 31 0d 09 | 09 6c 73 6c 2e 6c 09 09 |d0, d1..|.lsl.l..|
|00004bc0| 23 32 2c 20 64 31 0d 09 | 09 73 75 62 2e 6c 09 09 |#2, d1..|.sub.l..|
|00004bd0| 64 31 2c 20 6e 75 6d 42 | 79 74 65 73 50 65 72 52 |d1, numB|ytesPerR|
|00004be0| 6f 77 0d 0d 09 09 09 2f | 2f 20 6c 6f 6f 70 73 50 |ow...../|/ loopsP|
|00004bf0| 65 72 52 6f 77 20 3d 20 | 6c 6f 6e 67 57 6f 72 64 |erRow = |longWord|
|00004c00| 73 50 65 72 52 6f 77 20 | 3e 3e 20 34 3b 0d 09 09 |sPerRow |>> 4;...|
|00004c10| 6d 6f 76 65 2e 6c 09 64 | 30 2c 20 6c 6f 6f 70 73 |move.l.d|0, loops|
|00004c20| 50 65 72 52 6f 77 0d 09 | 09 6c 73 72 2e 6c 09 09 |PerRow..|.lsr.l..|
|00004c30| 23 34 2c 20 6c 6f 6f 70 | 73 50 65 72 52 6f 77 0d |#4, loop|sPerRow.|
|00004c40| 0d 09 09 6d 6f 76 65 71 | 09 09 23 30 78 46 2c 20 |...moveq|..#0xF, |
|00004c50| 64 31 0d 09 09 61 6e 64 | 2e 6c 09 09 64 31 2c 20 |d1...and|.l..d1, |
|00004c60| 64 30 0d 09 09 61 64 64 | 2e 6c 09 09 64 30 2c 20 |d0...add|.l..d0, |
|00004c70| 64 30 09 09 09 2f 2f 20 | 6d 75 6c 74 69 70 6c 79 |d0...// |multiply|
|00004c80| 20 6c 6f 6e 67 57 6f 72 | 64 73 50 65 72 52 6f 77 | longWor|dsPerRow|
|00004c90| 20 62 79 20 32 20 28 73 | 69 7a 65 20 6f 66 20 6d | by 2 (s|ize of m|
|00004ca0| 6f 76 65 2e 6c 20 28 73 | 72 63 50 69 78 65 6c 50 |ove.l (s|rcPixelP|
|00004cb0| 29 2b 2c 28 64 73 74 50 | 69 78 65 6c 50 29 2b 29 |)+,(dstP|ixelP)+)|
|00004cc0| 0d 09 09 6c 65 61 20 09 | 09 40 6c 6f 6f 70 45 6e |...lea .|.@loopEn|
|00004cd0| 64 2c 20 61 30 09 2f 2f | 20 67 65 74 20 61 64 64 |d, a0.//| get add|
|00004ce0| 72 65 73 73 20 6f 66 20 | 74 68 65 20 65 6e 64 20 |ress of |the end |
|00004cf0| 6f 66 20 74 68 65 20 6c | 6f 6f 70 0d 09 09 73 75 |of the l|oop...su|
|00004d00| 62 61 2e 6c 09 64 30 2c | 20 61 30 09 09 09 2f 2f |ba.l.d0,| a0...//|
|00004d10| 20 63 61 6c 63 75 6c 61 | 74 65 20 77 68 65 72 65 | calcula|te where|
|00004d20| 20 74 6f 20 6a 6d 70 20 | 69 6e 20 74 68 65 20 6c | to jmp |in the l|
|00004d30| 6f 6f 70 0d 0d 09 40 66 | 6f 72 45 61 63 68 52 6f |oop...@f|orEachRo|
|00004d40| 77 3a 0d 09 09 6d 6f 76 | 65 2e 6c 09 6c 6f 6f 70 |w:...mov|e.l.loop|
|00004d50| 73 50 65 72 52 6f 77 2c | 20 64 30 0d 09 09 6a 6d |sPerRow,| d0...jm|
|00004d60| 70 09 09 28 61 30 29 0d | 09 40 6c 6f 6f 70 42 61 |p..(a0).|.@loopBa|
|00004d70| 73 65 3a 0d 09 09 6d 6f | 76 65 2e 6c 09 28 73 72 |se:...mo|ve.l.(sr|
|00004d80| 63 50 69 78 65 6c 50 29 | 2b 2c 20 28 64 73 74 50 |cPixelP)|+, (dstP|
|00004d90| 69 78 65 6c 50 29 2b 09 | 2f 2f 20 31 36 0d 09 09 |ixelP)+.|// 16...|
|00004da0| 6d 6f 76 65 2e 6c 09 28 | 73 72 63 50 69 78 65 6c |move.l.(|srcPixel|
|00004db0| 50 29 2b 2c 20 28 64 73 | 74 50 69 78 65 6c 50 29 |P)+, (ds|tPixelP)|
|00004dc0| 2b 09 2f 2f 20 31 35 0d | 09 09 6d 6f 76 65 2e 6c |+.// 15.|..move.l|
|00004dd0| 09 28 73 72 63 50 69 78 | 65 6c 50 29 2b 2c 20 28 |.(srcPix|elP)+, (|
|00004de0| 64 73 74 50 69 78 65 6c | 50 29 2b 09 2f 2f 20 31 |dstPixel|P)+.// 1|
|00004df0| 34 0d 09 09 6d 6f 76 65 | 2e 6c 09 28 73 72 63 50 |4...move|.l.(srcP|
|00004e00| 69 78 65 6c 50 29 2b 2c | 20 28 64 73 74 50 69 78 |ixelP)+,| (dstPix|
|00004e10| 65 6c 50 29 2b 09 2f 2f | 20 31 33 0d 09 09 6d 6f |elP)+.//| 13...mo|
|00004e20| 76 65 2e 6c 09 28 73 72 | 63 50 69 78 65 6c 50 29 |ve.l.(sr|cPixelP)|
|00004e30| 2b 2c 20 28 64 73 74 50 | 69 78 65 6c 50 29 2b 09 |+, (dstP|ixelP)+.|
|00004e40| 2f 2f 20 31 32 0d 09 09 | 6d 6f 76 65 2e 6c 09 28 |// 12...|move.l.(|
|00004e50| 73 72 63 50 69 78 65 6c | 50 29 2b 2c 20 28 64 73 |srcPixel|P)+, (ds|
|00004e60| 74 50 69 78 65 6c 50 29 | 2b 09 2f 2f 20 31 31 20 |tPixelP)|+.// 11 |
|00004e70| 0d 09 09 6d 6f 76 65 2e | 6c 09 28 73 72 63 50 69 |...move.|l.(srcPi|
|00004e80| 78 65 6c 50 29 2b 2c 20 | 28 64 73 74 50 69 78 65 |xelP)+, |(dstPixe|
|00004e90| 6c 50 29 2b 09 2f 2f 20 | 31 30 0d 09 09 6d 6f 76 |lP)+.// |10...mov|
|00004ea0| 65 2e 6c 09 28 73 72 63 | 50 69 78 65 6c 50 29 2b |e.l.(src|PixelP)+|
|00004eb0| 2c 20 28 64 73 74 50 69 | 78 65 6c 50 29 2b 09 2f |, (dstPi|xelP)+./|
|00004ec0| 2f 20 20 39 0d 09 09 6d | 6f 76 65 2e 6c 09 28 73 |/ 9...m|ove.l.(s|
|00004ed0| 72 63 50 69 78 65 6c 50 | 29 2b 2c 20 28 64 73 74 |rcPixelP|)+, (dst|
|00004ee0| 50 69 78 65 6c 50 29 2b | 09 2f 2f 20 20 38 0d 09 |PixelP)+|.// 8..|
|00004ef0| 09 6d 6f 76 65 2e 6c 09 | 28 73 72 63 50 69 78 65 |.move.l.|(srcPixe|
|00004f00| 6c 50 29 2b 2c 20 28 64 | 73 74 50 69 78 65 6c 50 |lP)+, (d|stPixelP|
|00004f10| 29 2b 09 2f 2f 20 20 37 | 0d 09 09 6d 6f 76 65 2e |)+.// 7|...move.|
|00004f20| 6c 09 28 73 72 63 50 69 | 78 65 6c 50 29 2b 2c 20 |l.(srcPi|xelP)+, |
|00004f30| 28 64 73 74 50 69 78 65 | 6c 50 29 2b 09 2f 2f 20 |(dstPixe|lP)+.// |
|00004f40| 20 36 0d 09 09 6d 6f 76 | 65 2e 6c 09 28 73 72 63 | 6...mov|e.l.(src|
|00004f50| 50 69 78 65 6c 50 29 2b | 2c 20 28 64 73 74 50 69 |PixelP)+|, (dstPi|
|00004f60| 78 65 6c 50 29 2b 09 2f | 2f 20 20 35 0d 09 09 6d |xelP)+./|/ 5...m|
|00004f70| 6f 76 65 2e 6c 09 28 73 | 72 63 50 69 78 65 6c 50 |ove.l.(s|rcPixelP|
|00004f80| 29 2b 2c 20 28 64 73 74 | 50 69 78 65 6c 50 29 2b |)+, (dst|PixelP)+|
|00004f90| 09 2f 2f 20 20 34 0d 09 | 09 6d 6f 76 65 2e 6c 09 |.// 4..|.move.l.|
|00004fa0| 28 73 72 63 50 69 78 65 | 6c 50 29 2b 2c 20 28 64 |(srcPixe|lP)+, (d|
|00004fb0| 73 74 50 69 78 65 6c 50 | 29 2b 09 2f 2f 20 20 33 |stPixelP|)+.// 3|
|00004fc0| 0d 09 09 6d 6f 76 65 2e | 6c 09 28 73 72 63 50 69 |...move.|l.(srcPi|
|00004fd0| 78 65 6c 50 29 2b 2c 20 | 28 64 73 74 50 69 78 65 |xelP)+, |(dstPixe|
|00004fe0| 6c 50 29 2b 09 2f 2f 20 | 20 32 0d 09 09 6d 6f 76 |lP)+.// | 2...mov|
|00004ff0| 65 2e 6c 09 28 73 72 63 | 50 69 78 65 6c 50 29 2b |e.l.(src|PixelP)+|
|00005000| 2c 20 28 64 73 74 50 69 | 78 65 6c 50 29 2b 09 2f |, (dstPi|xelP)+./|
|00005010| 2f 20 20 31 0d 09 40 6c | 6f 6f 70 45 6e 64 3a 0d |/ 1..@l|oopEnd:.|
|00005020| 09 09 73 75 62 71 2e 6c | 09 23 31 2c 64 30 0d 09 |..subq.l|.#1,d0..|
|00005030| 09 62 70 6c 09 09 40 6c | 6f 6f 70 42 61 73 65 0d |.bpl..@l|oopBase.|
|00005040| 0d 09 09 2f 2f 20 6e 6f | 77 20 64 6f 20 61 6e 79 |...// no|w do any|
|00005050| 20 6c 65 66 74 6f 76 65 | 72 20 62 69 74 73 0d 09 | leftove|r bits..|
|00005060| 09 6d 6f 76 65 2e 6c 09 | 6e 75 6d 42 79 74 65 73 |.move.l.|numBytes|
|00005070| 50 65 72 52 6f 77 2c 20 | 64 30 0d 09 09 62 65 71 |PerRow, |d0...beq|
|00005080| 09 09 40 6e 65 78 74 52 | 6f 77 0d 09 09 73 75 62 |..@nextR|ow...sub|
|00005090| 71 2e 6c 09 23 32 2c 20 | 64 30 0d 09 09 62 6d 69 |q.l.#2, |d0...bmi|
|000050a0| 09 09 40 6d 6f 76 65 42 | 79 74 65 0d 09 09 6d 6f |..@moveB|yte...mo|
|000050b0| 76 65 2e 77 09 28 73 72 | 63 50 69 78 65 6c 50 29 |ve.w.(sr|cPixelP)|
|000050c0| 2b 2c 20 28 64 73 74 50 | 69 78 65 6c 50 29 2b 0d |+, (dstP|ixelP)+.|
|000050d0| 09 09 74 73 74 09 09 64 | 30 0d 09 09 62 65 71 09 |..tst..d|0...beq.|
|000050e0| 09 40 6e 65 78 74 52 6f | 77 0d 09 40 6d 6f 76 65 |.@nextRo|w..@move|
|000050f0| 42 79 74 65 3a 09 0d 09 | 09 6d 6f 76 65 2e 62 09 |Byte:...|.move.b.|
|00005100| 28 73 72 63 50 69 78 65 | 6c 50 29 2b 2c 20 28 64 |(srcPixe|lP)+, (d|
|00005110| 73 74 50 69 78 65 6c 50 | 29 2b 0d 0d 09 40 6e 65 |stPixelP|)+...@ne|
|00005120| 78 74 52 6f 77 3a 0d 09 | 09 61 64 64 61 2e 6c 09 |xtRow:..|.adda.l.|
|00005130| 73 72 63 52 6f 77 53 74 | 72 69 64 65 2c 20 73 72 |srcRowSt|ride, sr|
|00005140| 63 50 69 78 65 6c 50 0d | 09 09 61 64 64 61 2e 6c |cPixelP.|..adda.l|
|00005150| 09 64 73 74 52 6f 77 53 | 74 72 69 64 65 2c 20 64 |.dstRowS|tride, d|
|00005160| 73 74 50 69 78 65 6c 50 | 0d 09 09 73 75 62 71 2e |stPixelP|...subq.|
|00005170| 6c 09 23 31 2c 20 72 6f | 77 73 54 6f 43 6f 70 79 |l.#1, ro|wsToCopy|
|00005180| 0d 09 09 62 6e 65 09 09 | 40 66 6f 72 45 61 63 68 |...bne..|@forEach|
|00005190| 52 6f 77 0d 0d 23 69 66 | 20 5f 5f 4d 57 45 52 4b |Row..#if| __MWERK|
|000051a0| 53 5f 5f 0d 09 09 6d 6f | 76 65 6d 2e 6c 09 09 09 |S__...mo|vem.l...|
|000051b0| 28 73 70 29 2b 2c 09 6c | 6f 6f 70 73 50 65 72 52 |(sp)+,.l|oopsPerR|
|000051c0| 6f 77 2f 73 72 63 50 69 | 78 65 6c 50 2f 64 73 74 |ow/srcPi|xelP/dst|
|000051d0| 50 69 78 65 6c 50 2f 72 | 6f 77 73 54 6f 43 6f 70 |PixelP/r|owsToCop|
|000051e0| 79 2f 6e 75 6d 42 79 74 | 65 73 50 65 72 52 6f 77 |y/numByt|esPerRow|
|000051f0| 2f 73 72 63 52 6f 77 53 | 74 72 69 64 65 2f 64 73 |/srcRowS|tride/ds|
|00005200| 74 52 6f 77 53 74 72 69 | 64 65 0d 23 65 6e 64 69 |tRowStri|de.#endi|
|00005210| 66 0d 0d 09 09 53 57 5f | 41 53 4d 5f 45 4e 44 0d |f....SW_|ASM_END.|
|00005220| 7d 0d 0d 0d 2f 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |}...///-|--------|
|00005230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005270| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 2f 2f |--------|-----.//|
|00005280| 09 09 42 6c 69 74 50 69 | 78 69 65 43 68 75 6e 6b |..BlitPi|xieChunk|
|00005290| 73 0d 2f 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |s.///---|--------|
|000052a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000052b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000052c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000052d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000052e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 0d 53 57 5f |--------|---..SW_|
|000052f0| 41 53 4d 5f 46 55 4e 43 | 20 76 6f 69 64 20 42 6c |ASM_FUNC| void Bl|
|00005300| 69 74 50 69 78 69 65 43 | 68 75 6e 6b 73 28 0d 09 |itPixieC|hunks(..|
|00005310| 72 65 67 69 73 74 65 72 | 20 50 69 78 65 6c 43 68 |register| PixelCh|
|00005320| 75 6e 6b 50 74 72 20 73 | 72 63 50 69 78 65 6c 50 |unkPtr s|rcPixelP|
|00005330| 2c 0d 09 72 65 67 69 73 | 74 65 72 20 50 69 78 65 |,..regis|ter Pixe|
|00005340| 6c 43 68 75 6e 6b 50 74 | 72 20 64 73 74 50 69 78 |lChunkPt|r dstPix|
|00005350| 65 6c 50 2c 0d 09 72 65 | 67 69 73 74 65 72 20 75 |elP,..re|gister u|
|00005360| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 72 6f 77 |nsigned |long row|
|00005370| 73 54 6f 43 6f 70 79 2c | 0d 09 72 65 67 69 73 74 |sToCopy,|..regist|
|00005380| 65 72 20 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |er unsig|ned long|
|00005390| 20 70 69 78 65 6c 43 68 | 75 6e 6b 73 50 65 72 52 | pixelCh|unksPerR|
|000053a0| 6f 77 2c 0d 09 72 65 67 | 69 73 74 65 72 20 75 6e |ow,..reg|ister un|
|000053b0| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 73 72 63 52 |signed l|ong srcR|
|000053c0| 6f 77 53 74 72 69 64 65 | 2c 0d 09 72 65 67 69 73 |owStride|,..regis|
|000053d0| 74 65 72 20 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |ter unsi|gned lon|
|000053e0| 67 20 64 73 74 52 6f 77 | 53 74 72 69 64 65 29 0d |g dstRow|Stride).|
|000053f0| 7b 0d 09 72 65 67 69 73 | 74 65 72 20 75 6e 73 69 |{..regis|ter unsi|
|00005400| 67 6e 65 64 20 6c 6f 6e | 67 20 6c 6f 6f 70 73 50 |gned lon|g loopsP|
|00005410| 65 72 52 6f 77 3b 0d 0d | 09 09 09 53 57 5f 41 53 |erRow;..|...SW_AS|
|00005420| 4d 5f 42 45 47 49 4e 0d | 0d 23 69 66 20 5f 5f 4d |M_BEGIN.|.#if __M|
|00005430| 57 45 52 4b 53 5f 5f 0d | 09 09 09 6d 6f 76 65 6d |WERKS__.|...movem|
|00005440| 2e 6c 09 09 09 6c 6f 6f | 70 73 50 65 72 52 6f 77 |.l...loo|psPerRow|
|00005450| 2f 72 6f 77 73 54 6f 43 | 6f 70 79 2f 70 69 78 65 |/rowsToC|opy/pixe|
|00005460| 6c 43 68 75 6e 6b 73 50 | 65 72 52 6f 77 2f 73 72 |lChunksP|erRow/sr|
|00005470| 63 52 6f 77 53 74 72 69 | 64 65 2f 64 73 74 52 6f |cRowStri|de/dstRo|
|00005480| 77 53 74 72 69 64 65 2f | 73 72 63 50 69 78 65 6c |wStride/|srcPixel|
|00005490| 50 2f 64 73 74 50 69 78 | 65 6c 50 2c 20 2d 28 73 |P/dstPix|elP, -(s|
|000054a0| 70 29 0d 0d 09 09 09 09 | 2f 2f 20 6d 6f 76 65 20 |p)......|// move |
|000054b0| 74 68 65 20 70 61 72 61 | 6d 65 74 65 72 73 20 69 |the para|meters i|
|000054c0| 6e 74 6f 20 72 65 67 69 | 73 74 65 72 73 0d 09 09 |nto regi|sters...|
|000054d0| 09 6d 6f 76 65 61 2e 6c | 09 09 09 33 32 28 73 70 |.movea.l|...32(sp|
|000054e0| 29 2c 20 73 72 63 50 69 | 78 65 6c 50 0d 09 09 09 |), srcPi|xelP....|
|000054f0| 6d 6f 76 65 61 2e 6c 09 | 09 09 33 36 28 73 70 29 |movea.l.|..36(sp)|
|00005500| 2c 20 64 73 74 50 69 78 | 65 6c 50 0d 09 09 09 6d |, dstPix|elP....m|
|00005510| 6f 76 65 2e 6c 09 09 09 | 34 30 28 73 70 29 2c 20 |ove.l...|40(sp), |
|00005520| 72 6f 77 73 54 6f 43 6f | 70 79 0d 09 09 09 6d 6f |rowsToCo|py....mo|
|00005530| 76 65 2e 6c 09 09 09 34 | 34 28 73 70 29 2c 20 70 |ve.l...4|4(sp), p|
|00005540| 69 78 65 6c 43 68 75 6e | 6b 73 50 65 72 52 6f 77 |ixelChun|ksPerRow|
|00005550| 0d 09 09 09 6d 6f 76 65 | 2e 6c 09 09 09 34 38 28 |....move|.l...48(|
|00005560| 73 70 29 2c 20 73 72 63 | 52 6f 77 53 74 72 69 64 |sp), src|RowStrid|
|00005570| 65 0d 09 09 09 6d 6f 76 | 65 2e 6c 09 09 09 35 32 |e....mov|e.l...52|
|00005580| 28 73 70 29 2c 20 64 73 | 74 52 6f 77 53 74 72 69 |(sp), ds|tRowStri|
|00005590| 64 65 0d 23 65 6e 64 69 | 66 0d 09 09 09 09 2f 2f |de.#endi|f.....//|
|000055a0| 20 63 61 6c 63 75 6c 61 | 74 65 20 6e 75 6d 62 65 | calcula|te numbe|
|000055b0| 72 20 6f 66 20 6c 6f 6f | 70 73 20 70 65 72 20 72 |r of loo|ps per r|
|000055c0| 6f 77 20 6f 66 20 70 69 | 78 65 6c 73 0d 09 09 09 |ow of pi|xels....|
|000055d0| 09 2f 2f 20 6c 6f 6f 70 | 73 50 65 72 52 6f 77 20 |.// loop|sPerRow |
|000055e0| 3d 20 70 69 78 65 6c 43 | 68 75 6e 6b 73 50 65 72 |= pixelC|hunksPer|
|000055f0| 52 6f 77 20 3e 3e 20 34 | 3b 0d 09 09 09 6d 6f 76 |Row >> 4|;....mov|
|00005600| 65 2e 6c 09 09 09 70 69 | 78 65 6c 43 68 75 6e 6b |e.l...pi|xelChunk|
|00005610| 73 50 65 72 52 6f 77 2c | 20 6c 6f 6f 70 73 50 65 |sPerRow,| loopsPe|
|00005620| 72 52 6f 77 0d 09 09 09 | 6c 73 72 2e 6c 09 09 09 |rRow....|lsr.l...|
|00005630| 09 23 34 2c 20 6c 6f 6f | 70 73 50 65 72 52 6f 77 |.#4, loo|psPerRow|
|00005640| 0d 0d 09 09 09 09 2f 2f | 20 63 61 6c 63 75 6c 61 |......//| calcula|
|00005650| 74 65 20 77 68 69 63 68 | 20 6d 6f 76 65 2e 6c 20 |te which| move.l |
|00005660| 74 6f 20 6a 75 6d 70 20 | 74 6f 0d 09 09 09 6d 6f |to jump |to....mo|
|00005670| 76 65 71 09 09 09 09 23 | 30 78 46 2c 20 64 30 0d |veq....#|0xF, d0.|
|00005680| 09 09 09 61 6e 64 2e 6c | 09 09 09 09 64 30 2c 20 |...and.l|....d0, |
|00005690| 70 69 78 65 6c 43 68 75 | 6e 6b 73 50 65 72 52 6f |pixelChu|nksPerRo|
|000056a0| 77 0d 09 09 09 61 64 64 | 2e 6c 09 09 09 09 70 69 |w....add|.l....pi|
|000056b0| 78 65 6c 43 68 75 6e 6b | 73 50 65 72 52 6f 77 2c |xelChunk|sPerRow,|
|000056c0| 20 70 69 78 65 6c 43 68 | 75 6e 6b 73 50 65 72 52 | pixelCh|unksPerR|
|000056d0| 6f 77 0d 09 09 09 6c 65 | 61 20 09 09 09 09 40 70 |ow....le|a ....@p|
|000056e0| 72 65 4c 6f 6f 70 45 6e | 64 2c 20 61 30 0d 09 09 |reLoopEn|d, a0...|
|000056f0| 09 73 75 62 61 2e 6c 09 | 09 09 70 69 78 65 6c 43 |.suba.l.|..pixelC|
|00005700| 68 75 6e 6b 73 50 65 72 | 52 6f 77 2c 20 61 30 0d |hunksPer|Row, a0.|
|00005710| 0d 09 40 66 6f 72 45 61 | 63 68 52 6f 77 3a 0d 09 |..@forEa|chRow:..|
|00005720| 09 09 6a 6d 70 09 09 09 | 09 28 61 30 29 0d 09 09 |..jmp...|.(a0)...|
|00005730| 09 6d 6f 76 65 2e 6c 09 | 09 09 28 73 72 63 50 69 |.move.l.|..(srcPi|
|00005740| 78 65 6c 50 29 2b 2c 20 | 28 64 73 74 50 69 78 65 |xelP)+, |(dstPixe|
|00005750| 6c 50 29 2b 0d 09 09 09 | 6d 6f 76 65 2e 6c 09 09 |lP)+....|move.l..|
|00005760| 09 28 73 72 63 50 69 78 | 65 6c 50 29 2b 2c 20 28 |.(srcPix|elP)+, (|
|00005770| 64 73 74 50 69 78 65 6c | 50 29 2b 0d 09 09 09 6d |dstPixel|P)+....m|
|00005780| 6f 76 65 2e 6c 09 09 09 | 28 73 72 63 50 69 78 65 |ove.l...|(srcPixe|
|00005790| 6c 50 29 2b 2c 20 28 64 | 73 74 50 69 78 65 6c 50 |lP)+, (d|stPixelP|
|000057a0| 29 2b 0d 09 09 09 6d 6f | 76 65 2e 6c 09 09 09 28 |)+....mo|ve.l...(|
|000057b0| 73 72 63 50 69 78 65 6c | 50 29 2b 2c 20 28 64 73 |srcPixel|P)+, (ds|
|000057c0| 74 50 69 78 65 6c 50 29 | 2b 0d 09 09 09 6d 6f 76 |tPixelP)|+....mov|
|000057d0| 65 2e 6c 09 09 09 28 73 | 72 63 50 69 78 65 6c 50 |e.l...(s|rcPixelP|
|000057e0| 29 2b 2c 20 28 64 73 74 | 50 69 78 65 6c 50 29 2b |)+, (dst|PixelP)+|
|000057f0| 0d 09 09 09 6d 6f 76 65 | 2e 6c 09 09 09 28 73 72 |....move|.l...(sr|
|00005800| 63 50 69 78 65 6c 50 29 | 2b 2c 20 28 64 73 74 50 |cPixelP)|+, (dstP|
|00005810| 69 78 65 6c 50 29 2b 0d | 09 09 09 6d 6f 76 65 2e |ixelP)+.|...move.|
|00005820| 6c 09 09 09 28 73 72 63 | 50 69 78 65 6c 50 29 2b |l...(src|PixelP)+|
|00005830| 2c 20 28 64 73 74 50 69 | 78 65 6c 50 29 2b 0d 09 |, (dstPi|xelP)+..|
|00005840| 09 09 6d 6f 76 65 2e 6c | 09 09 09 28 73 72 63 50 |..move.l|...(srcP|
|00005850| 69 78 65 6c 50 29 2b 2c | 20 28 64 73 74 50 69 78 |ixelP)+,| (dstPix|
|00005860| 65 6c 50 29 2b 0d 09 09 | 09 6d 6f 76 65 2e 6c 09 |elP)+...|.move.l.|
|00005870| 09 09 28 73 72 63 50 69 | 78 65 6c 50 29 2b 2c 20 |..(srcPi|xelP)+, |
|00005880| 28 64 73 74 50 69 78 65 | 6c 50 29 2b 0d 09 09 09 |(dstPixe|lP)+....|
|00005890| 6d 6f 76 65 2e 6c 09 09 | 09 28 73 72 63 50 69 78 |move.l..|.(srcPix|
|000058a0| 65 6c 50 29 2b 2c 20 28 | 64 73 74 50 69 78 65 6c |elP)+, (|dstPixel|
|000058b0| 50 29 2b 0d 09 09 09 6d | 6f 76 65 2e 6c 09 09 09 |P)+....m|ove.l...|
|000058c0| 28 73 72 63 50 69 78 65 | 6c 50 29 2b 2c 20 28 64 |(srcPixe|lP)+, (d|
|000058d0| 73 74 50 69 78 65 6c 50 | 29 2b 0d 09 09 09 6d 6f |stPixelP|)+....mo|
|000058e0| 76 65 2e 6c 09 09 09 28 | 73 72 63 50 69 78 65 6c |ve.l...(|srcPixel|
|000058f0| 50 29 2b 2c 20 28 64 73 | 74 50 69 78 65 6c 50 29 |P)+, (ds|tPixelP)|
|00005900| 2b 0d 09 09 09 6d 6f 76 | 65 2e 6c 09 09 09 28 73 |+....mov|e.l...(s|
|00005910| 72 63 50 69 78 65 6c 50 | 29 2b 2c 20 28 64 73 74 |rcPixelP|)+, (dst|
|00005920| 50 69 78 65 6c 50 29 2b | 0d 09 09 09 6d 6f 76 65 |PixelP)+|....move|
|00005930| 2e 6c 09 09 09 28 73 72 | 63 50 69 78 65 6c 50 29 |.l...(sr|cPixelP)|
|00005940| 2b 2c 20 28 64 73 74 50 | 69 78 65 6c 50 29 2b 0d |+, (dstP|ixelP)+.|
|00005950| 09 09 09 6d 6f 76 65 2e | 6c 09 09 09 28 73 72 63 |...move.|l...(src|
|00005960| 50 69 78 65 6c 50 29 2b | 2c 20 28 64 73 74 50 69 |PixelP)+|, (dstPi|
|00005970| 78 65 6c 50 29 2b 0d 09 | 40 70 72 65 4c 6f 6f 70 |xelP)+..|@preLoop|
|00005980| 45 6e 64 3a 0d 0d 09 09 | 09 6d 6f 76 65 2e 6c 09 |End:....|.move.l.|
|00005990| 09 09 6c 6f 6f 70 73 50 | 65 72 52 6f 77 2c 20 64 |..loopsP|erRow, d|
|000059a0| 30 0d 09 09 09 62 65 71 | 09 09 09 09 40 73 6b 69 |0....beq|....@ski|
|000059b0| 70 4c 6f 6f 70 0d 09 40 | 6c 6f 6f 70 42 61 73 65 |pLoop..@|loopBase|
|000059c0| 3a 0d 09 09 09 6d 6f 76 | 65 2e 6c 09 09 09 28 73 |:....mov|e.l...(s|
|000059d0| 72 63 50 69 78 65 6c 50 | 29 2b 2c 20 28 64 73 74 |rcPixelP|)+, (dst|
|000059e0| 50 69 78 65 6c 50 29 2b | 0d 09 09 09 6d 6f 76 65 |PixelP)+|....move|
|000059f0| 2e 6c 09 09 09 28 73 72 | 63 50 69 78 65 6c 50 29 |.l...(sr|cPixelP)|
|00005a00| 2b 2c 20 28 64 73 74 50 | 69 78 65 6c 50 29 2b 0d |+, (dstP|ixelP)+.|
|00005a10| 09 09 09 6d 6f 76 65 2e | 6c 09 09 09 28 73 72 63 |...move.|l...(src|
|00005a20| 50 69 78 65 6c 50 29 2b | 2c 20 28 64 73 74 50 69 |PixelP)+|, (dstPi|
|00005a30| 78 65 6c 50 29 2b 0d 09 | 09 09 6d 6f 76 65 2e 6c |xelP)+..|..move.l|
|00005a40| 09 09 09 28 73 72 63 50 | 69 78 65 6c 50 29 2b 2c |...(srcP|ixelP)+,|
|00005a50| 20 28 64 73 74 50 69 78 | 65 6c 50 29 2b 0d 09 09 | (dstPix|elP)+...|
|00005a60| 09 6d 6f 76 65 2e 6c 09 | 09 09 28 73 72 63 50 69 |.move.l.|..(srcPi|
|00005a70| 78 65 6c 50 29 2b 2c 20 | 28 64 73 74 50 69 78 65 |xelP)+, |(dstPixe|
|00005a80| 6c 50 29 2b 0d 09 09 09 | 6d 6f 76 65 2e 6c 09 09 |lP)+....|move.l..|
|00005a90| 09 28 73 72 63 50 69 78 | 65 6c 50 29 2b 2c 20 28 |.(srcPix|elP)+, (|
|00005aa0| 64 73 74 50 69 78 65 6c | 50 29 2b 0d 09 09 09 6d |dstPixel|P)+....m|
|00005ab0| 6f 76 65 2e 6c 09 09 09 | 28 73 72 63 50 69 78 65 |ove.l...|(srcPixe|
|00005ac0| 6c 50 29 2b 2c 20 28 64 | 73 74 50 69 78 65 6c 50 |lP)+, (d|stPixelP|
|00005ad0| 29 2b 0d 09 09 09 6d 6f | 76 65 2e 6c 09 09 09 28 |)+....mo|ve.l...(|
|00005ae0| 73 72 63 50 69 78 65 6c | 50 29 2b 2c 20 28 64 73 |srcPixel|P)+, (ds|
|00005af0| 74 50 69 78 65 6c 50 29 | 2b 0d 09 09 09 6d 6f 76 |tPixelP)|+....mov|
|00005b00| 65 2e 6c 09 09 09 28 73 | 72 63 50 69 78 65 6c 50 |e.l...(s|rcPixelP|
|00005b10| 29 2b 2c 20 28 64 73 74 | 50 69 78 65 6c 50 29 2b |)+, (dst|PixelP)+|
|00005b20| 0d 09 09 09 6d 6f 76 65 | 2e 6c 09 09 09 28 73 72 |....move|.l...(sr|
|00005b30| 63 50 69 78 65 6c 50 29 | 2b 2c 20 28 64 73 74 50 |cPixelP)|+, (dstP|
|00005b40| 69 78 65 6c 50 29 2b 0d | 09 09 09 6d 6f 76 65 2e |ixelP)+.|...move.|
|00005b50| 6c 09 09 09 28 73 72 63 | 50 69 78 65 6c 50 29 2b |l...(src|PixelP)+|
|00005b60| 2c 20 28 64 73 74 50 69 | 78 65 6c 50 29 2b 0d 09 |, (dstPi|xelP)+..|
|00005b70| 09 09 6d 6f 76 65 2e 6c | 09 09 09 28 73 72 63 50 |..move.l|...(srcP|
|00005b80| 69 78 65 6c 50 29 2b 2c | 20 28 64 73 74 50 69 78 |ixelP)+,| (dstPix|
|00005b90| 65 6c 50 29 2b 0d 09 09 | 09 6d 6f 76 65 2e 6c 09 |elP)+...|.move.l.|
|00005ba0| 09 09 28 73 72 63 50 69 | 78 65 6c 50 29 2b 2c 20 |..(srcPi|xelP)+, |
|00005bb0| 28 64 73 74 50 69 78 65 | 6c 50 29 2b 0d 09 09 09 |(dstPixe|lP)+....|
|00005bc0| 6d 6f 76 65 2e 6c 09 09 | 09 28 73 72 63 50 69 78 |move.l..|.(srcPix|
|00005bd0| 65 6c 50 29 2b 2c 20 28 | 64 73 74 50 69 78 65 6c |elP)+, (|dstPixel|
|00005be0| 50 29 2b 0d 09 09 09 6d | 6f 76 65 2e 6c 09 09 09 |P)+....m|ove.l...|
|00005bf0| 28 73 72 63 50 69 78 65 | 6c 50 29 2b 2c 20 28 64 |(srcPixe|lP)+, (d|
|00005c00| 73 74 50 69 78 65 6c 50 | 29 2b 0d 09 09 09 6d 6f |stPixelP|)+....mo|
|00005c10| 76 65 2e 6c 09 09 09 28 | 73 72 63 50 69 78 65 6c |ve.l...(|srcPixel|
|00005c20| 50 29 2b 2c 20 28 64 73 | 74 50 69 78 65 6c 50 29 |P)+, (ds|tPixelP)|
|00005c30| 2b 0d 09 09 09 09 2f 2f | 20 64 65 63 72 65 6d 65 |+.....//| decreme|
|00005c40| 6e 74 20 74 68 65 20 6c | 6f 6f 70 73 50 65 72 52 |nt the l|oopsPerR|
|00005c50| 6f 77 20 63 6f 75 6e 74 | 65 72 20 61 6e 64 20 6c |ow count|er and l|
|00005c60| 6f 6f 70 20 62 61 63 6b | 0d 09 09 09 73 75 62 71 |oop back|....subq|
|00005c70| 2e 6c 09 09 09 23 31 2c | 20 64 30 0d 09 09 09 62 |.l...#1,| d0....b|
|00005c80| 6e 65 09 09 09 09 40 6c | 6f 6f 70 42 61 73 65 0d |ne....@l|oopBase.|
|00005c90| 40 73 6b 69 70 4c 6f 6f | 70 3a 0d 09 09 09 09 2f |@skipLoo|p:...../|
|00005ca0| 2f 20 62 75 6d 70 20 74 | 68 65 20 73 6f 75 72 63 |/ bump t|he sourc|
|00005cb0| 65 20 61 6e 64 20 64 65 | 73 74 20 70 6f 69 6e 74 |e and de|st point|
|00005cc0| 65 72 73 0d 09 09 09 61 | 64 64 61 2e 6c 09 09 09 |ers....a|dda.l...|
|00005cd0| 73 72 63 52 6f 77 53 74 | 72 69 64 65 2c 20 73 72 |srcRowSt|ride, sr|
|00005ce0| 63 50 69 78 65 6c 50 0d | 09 09 09 61 64 64 61 2e |cPixelP.|...adda.|
|00005cf0| 6c 09 09 09 64 73 74 52 | 6f 77 53 74 72 69 64 65 |l...dstR|owStride|
|00005d00| 2c 20 64 73 74 50 69 78 | 65 6c 50 0d 0d 09 09 09 |, dstPix|elP.....|
|00005d10| 09 2f 2f 20 64 65 63 72 | 65 6d 65 6e 74 20 74 68 |.// decr|ement th|
|00005d20| 65 20 72 6f 77 20 63 6f | 75 6e 74 65 72 20 61 6e |e row co|unter an|
|00005d30| 64 20 6c 6f 6f 70 20 62 | 61 63 6b 0d 09 09 09 73 |d loop b|ack....s|
|00005d40| 75 62 71 09 09 09 09 23 | 31 2c 20 72 6f 77 73 54 |ubq....#|1, rowsT|
|00005d50| 6f 43 6f 70 79 0d 09 09 | 09 62 6e 65 09 09 09 09 |oCopy...|.bne....|
|00005d60| 40 66 6f 72 45 61 63 68 | 52 6f 77 0d 0d 23 69 66 |@forEach|Row..#if|
|00005d70| 20 5f 5f 4d 57 45 52 4b | 53 5f 5f 0d 09 09 09 6d | __MWERK|S__....m|
|00005d80| 6f 76 65 6d 2e 6c 09 09 | 09 28 73 70 29 2b 2c 20 |ovem.l..|.(sp)+, |
|00005d90| 6c 6f 6f 70 73 50 65 72 | 52 6f 77 2f 72 6f 77 73 |loopsPer|Row/rows|
|00005da0| 54 6f 43 6f 70 79 2f 70 | 69 78 65 6c 43 68 75 6e |ToCopy/p|ixelChun|
|00005db0| 6b 73 50 65 72 52 6f 77 | 2f 73 72 63 52 6f 77 53 |ksPerRow|/srcRowS|
|00005dc0| 74 72 69 64 65 2f 64 73 | 74 52 6f 77 53 74 72 69 |tride/ds|tRowStri|
|00005dd0| 64 65 2f 73 72 63 50 69 | 78 65 6c 50 2f 64 73 74 |de/srcPi|xelP/dst|
|00005de0| 50 69 78 65 6c 50 0d 23 | 65 6e 64 69 66 0d 0d 09 |PixelP.#|endif...|
|00005df0| 09 09 53 57 5f 41 53 4d | 5f 45 4e 44 0d 7d 0d 0d |..SW_ASM|_END.}..|
|00005e00| 0d 2f 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.///----|--------|
|00005e10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005e20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005e30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005e40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 09 09 42 |--------|--.//..B|
|00005e60| 6c 69 74 50 69 78 69 65 | 4d 61 73 6b 0d 2f 2f 2f |litPixie|Mask.///|
|00005e70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005e80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005e90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ea0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005eb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005ec0| 2d 2d 2d 2d 2d 2d 0d 0d | 53 57 5f 41 53 4d 5f 46 |------..|SW_ASM_F|
|00005ed0| 55 4e 43 20 76 6f 69 64 | 20 42 6c 69 74 50 69 78 |UNC void| BlitPix|
|00005ee0| 69 65 4d 61 73 6b 28 0d | 09 72 65 67 69 73 74 65 |ieMask(.|.registe|
|00005ef0| 72 20 50 69 78 65 6c 50 | 74 72 20 73 72 63 50 69 |r PixelP|tr srcPi|
|00005f00| 78 65 6c 50 2c 0d 09 72 | 65 67 69 73 74 65 72 20 |xelP,..r|egister |
|00005f10| 50 69 78 65 6c 50 74 72 | 20 64 73 74 50 69 78 65 |PixelPtr| dstPixe|
|00005f20| 6c 50 2c 0d 09 72 65 67 | 69 73 74 65 72 20 50 69 |lP,..reg|ister Pi|
|00005f30| 78 65 6c 50 74 72 20 6d | 61 73 6b 50 69 78 65 6c |xelPtr m|askPixel|
|00005f40| 50 2c 0d 09 72 65 67 69 | 73 74 65 72 20 75 6e 73 |P,..regi|ster uns|
|00005f50| 69 67 6e 65 64 20 6c 6f | 6e 67 20 72 6f 77 73 54 |igned lo|ng rowsT|
|00005f60| 6f 43 6f 70 79 2c 0d 09 | 72 65 67 69 73 74 65 72 |oCopy,..|register|
|00005f70| 20 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 20 6e | unsigne|d long n|
|00005f80| 75 6d 42 79 74 65 73 50 | 65 72 52 6f 77 2c 0d 09 |umBytesP|erRow,..|
|00005f90| 72 65 67 69 73 74 65 72 | 20 75 6e 73 69 67 6e 65 |register| unsigne|
|00005fa0| 64 20 6c 6f 6e 67 20 73 | 72 63 52 6f 77 53 74 72 |d long s|rcRowStr|
|00005fb0| 69 64 65 2c 0d 09 72 65 | 67 69 73 74 65 72 20 75 |ide,..re|gister u|
|00005fc0| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 64 73 74 |nsigned |long dst|
|00005fd0| 52 6f 77 53 74 72 69 64 | 65 29 0d 7b 0d 09 72 65 |RowStrid|e).{..re|
|00005fe0| 67 69 73 74 65 72 20 75 | 6e 73 69 67 6e 65 64 20 |gister u|nsigned |
|00005ff0| 6c 6f 6e 67 20 6c 6f 6f | 70 73 50 65 72 52 6f 77 |long loo|psPerRow|
|00006000| 3b 0d 0d 09 09 53 57 5f | 41 53 4d 5f 42 45 47 49 |;....SW_|ASM_BEGI|
|00006010| 4e 0d 0d 23 69 66 20 5f | 5f 4d 57 45 52 4b 53 5f |N..#if _|_MWERKS_|
|00006020| 5f 0d 09 09 6d 6f 76 65 | 6d 2e 6c 09 6c 6f 6f 70 |_...move|m.l.loop|
|00006030| 73 50 65 72 52 6f 77 2f | 73 72 63 50 69 78 65 6c |sPerRow/|srcPixel|
|00006040| 50 2f 64 73 74 50 69 78 | 65 6c 50 2f 6d 61 73 6b |P/dstPix|elP/mask|
|00006050| 50 69 78 65 6c 50 2f 72 | 6f 77 73 54 6f 43 6f 70 |PixelP/r|owsToCop|
|00006060| 79 2f 6e 75 6d 42 79 74 | 65 73 50 65 72 52 6f 77 |y/numByt|esPerRow|
|00006070| 2f 73 72 63 52 6f 77 53 | 74 72 69 64 65 2f 64 73 |/srcRowS|tride/ds|
|00006080| 74 52 6f 77 53 74 72 69 | 64 65 2c 20 2d 28 73 70 |tRowStri|de, -(sp|
|00006090| 29 0d 0d 09 09 6d 6f 76 | 65 61 2e 6c 09 33 36 28 |)....mov|ea.l.36(|
|000060a0| 73 70 29 2c 20 73 72 63 | 50 69 78 65 6c 50 0d 09 |sp), src|PixelP..|
|000060b0| 09 6d 6f 76 65 61 2e 6c | 09 34 30 28 73 70 29 2c |.movea.l|.40(sp),|
|000060c0| 20 64 73 74 50 69 78 65 | 6c 50 0d 09 09 6d 6f 76 | dstPixe|lP...mov|
|000060d0| 65 61 2e 6c 09 34 34 28 | 73 70 29 2c 20 6d 61 73 |ea.l.44(|sp), mas|
|000060e0| 6b 50 69 78 65 6c 50 0d | 09 09 6d 6f 76 65 2e 6c |kPixelP.|..move.l|
|000060f0| 09 34 38 28 73 70 29 2c | 20 72 6f 77 73 54 6f 43 |.48(sp),| rowsToC|
|00006100| 6f 70 79 0d 09 09 6d 6f | 76 65 2e 6c 09 35 32 28 |opy...mo|ve.l.52(|
|00006110| 73 70 29 2c 20 6e 75 6d | 42 79 74 65 73 50 65 72 |sp), num|BytesPer|
|00006120| 52 6f 77 0d 09 09 6d 6f | 76 65 2e 6c 09 35 36 28 |Row...mo|ve.l.56(|
|00006130| 73 70 29 2c 20 73 72 63 | 52 6f 77 53 74 72 69 64 |sp), src|RowStrid|
|00006140| 65 0d 09 09 6d 6f 76 65 | 2e 6c 09 36 30 28 73 70 |e...move|.l.60(sp|
|00006150| 29 2c 20 64 73 74 52 6f | 77 53 74 72 69 64 65 0d |), dstRo|wStride.|
|00006160| 23 65 6e 64 69 66 0d 0d | 09 09 09 2f 2f 20 6c 6f |#endif..|...// lo|
|00006170| 6e 67 57 6f 72 64 73 50 | 65 72 52 6f 77 20 3d 20 |ngWordsP|erRow = |
|00006180| 6e 75 6d 42 79 74 65 73 | 50 65 72 52 6f 77 20 3e |numBytes|PerRow >|
|00006190| 3e 20 32 3b 0d 09 09 6d | 6f 76 65 2e 6c 09 6e 75 |> 2;...m|ove.l.nu|
|000061a0| 6d 42 79 74 65 73 50 65 | 72 52 6f 77 2c 20 64 30 |mBytesPe|rRow, d0|
|000061b0| 0d 09 09 6c 73 72 2e 6c | 09 09 23 32 2c 20 64 30 |...lsr.l|..#2, d0|
|000061c0| 0d 0d 09 09 09 2f 2f 20 | 6e 75 6d 42 79 74 65 73 |.....// |numBytes|
|000061d0| 50 65 72 52 6f 77 20 2d | 3d 20 6c 6f 6e 67 57 6f |PerRow -|= longWo|
|000061e0| 72 64 73 50 65 72 52 6f | 77 20 3c 3c 20 32 3b 0d |rdsPerRo|w << 2;.|
|000061f0| 09 09 6d 6f 76 65 2e 6c | 09 64 30 2c 20 64 31 0d |..move.l|.d0, d1.|
|00006200| 09 09 6c 73 6c 2e 6c 09 | 09 23 32 2c 20 64 31 0d |..lsl.l.|.#2, d1.|
|00006210| 09 09 73 75 62 2e 6c 09 | 09 64 31 2c 20 6e 75 6d |..sub.l.|.d1, num|
|00006220| 42 79 74 65 73 50 65 72 | 52 6f 77 0d 0d 09 09 09 |BytesPer|Row.....|
|00006230| 2f 2f 20 6c 6f 6f 70 73 | 50 65 72 52 6f 77 20 3d |// loops|PerRow =|
|00006240| 20 6c 6f 6e 67 57 6f 72 | 64 73 50 65 72 52 6f 77 | longWor|dsPerRow|
|00006250| 20 3e 3e 20 34 3b 0d 09 | 09 6d 6f 76 65 2e 6c 09 | >> 4;..|.move.l.|
|00006260| 64 30 2c 20 6c 6f 6f 70 | 73 50 65 72 52 6f 77 0d |d0, loop|sPerRow.|
|00006270| 09 09 6c 73 72 2e 6c 09 | 09 23 34 2c 20 6c 6f 6f |..lsr.l.|.#4, loo|
|00006280| 70 73 50 65 72 52 6f 77 | 0d 0d 09 09 09 0d 09 09 |psPerRow|........|
|00006290| 6d 6f 76 65 71 09 09 23 | 30 78 46 2c 20 64 31 0d |moveq..#|0xF, d1.|
|000062a0| 09 09 61 6e 64 2e 6c 09 | 09 64 31 2c 20 64 30 0d |..and.l.|.d1, d0.|
|000062b0| 09 09 6c 73 6c 2e 6c 09 | 09 23 33 2c 20 64 30 09 |..lsl.l.|.#3, d0.|
|000062c0| 09 09 09 09 2f 2f 20 6c | 6f 6e 67 57 6f 72 64 73 |....// l|ongWords|
|000062d0| 50 65 72 52 6f 77 20 2a | 3d 20 38 3b 0d 09 09 6c |PerRow *|= 8;...l|
|000062e0| 65 61 20 09 09 40 6c 6f | 6f 70 45 6e 64 2c 20 61 |ea ..@lo|opEnd, a|
|000062f0| 30 09 09 09 2f 2f 20 67 | 65 74 20 61 64 64 72 65 |0...// g|et addre|
|00006300| 73 73 20 6f 66 20 74 68 | 65 20 65 6e 64 20 6f 66 |ss of th|e end of|
|00006310| 20 74 68 65 20 6c 6f 6f | 70 0d 09 09 73 75 62 2e | the loo|p...sub.|
|00006320| 6c 09 09 64 30 2c 20 61 | 30 09 09 09 09 09 2f 2f |l..d0, a|0.....//|
|00006330| 20 63 61 6c 63 75 6c 61 | 74 65 20 77 68 65 72 65 | calcula|te where|
|00006340| 20 74 6f 20 6a 6d 70 20 | 69 6e 20 74 68 65 20 6c | to jmp |in the l|
|00006350| 6f 6f 70 0d 0d 09 40 66 | 6f 72 45 61 63 68 52 6f |oop...@f|orEachRo|
|00006360| 77 3a 0d 09 09 6d 6f 76 | 65 2e 6c 09 6c 6f 6f 70 |w:...mov|e.l.loop|
|00006370| 73 50 65 72 52 6f 77 2c | 20 64 32 0d 09 09 6a 6d |sPerRow,| d2...jm|
|00006380| 70 09 09 28 61 30 29 0d | 09 40 6c 6f 6f 70 42 61 |p..(a0).|.@loopBa|
|00006390| 73 65 3a 0d 09 09 09 2f | 2f 20 31 36 0d 09 09 6d |se:..../|/ 16...m|
|000063a0| 6f 76 65 2e 6c 09 28 64 | 73 74 50 69 78 65 6c 50 |ove.l.(d|stPixelP|
|000063b0| 29 2c 20 64 30 0d 09 09 | 61 6e 64 2e 6c 09 09 28 |), d0...|and.l..(|
|000063c0| 6d 61 73 6b 50 69 78 65 | 6c 50 29 2b 2c 20 64 30 |maskPixe|lP)+, d0|
|000063d0| 0d 09 09 6f 72 2e 6c 09 | 09 28 73 72 63 50 69 78 |...or.l.|.(srcPix|
|000063e0| 65 6c 50 29 2b 2c 20 64 | 30 0d 09 09 6d 6f 76 65 |elP)+, d|0...move|
|000063f0| 2e 6c 09 64 30 2c 20 28 | 64 73 74 50 69 78 65 6c |.l.d0, (|dstPixel|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.